专注物联网
一、互斥量的属性 就像线程有属性一样,线程的同步互斥量也有属性,比较重要的是进程共享属性和类型属性。互斥量的属性用pthread_mutexattr_t类型的数据 表示,当然在使用之前必须进行初始化,使用完成之后需要进行销毁: 1)、互斥量初始化 ...
一、线程有哪些属性 线程的属性用pthread_attr_t类型的结构表示,在创建线程的时候可以不用传入NULL,而是传入一个pthread_attr_t结构,由用户自己来配置线程 的属性。
一、为什么要使用一次性初始化 有些事需要且只能执行一次(比如互斥量初始化)。通常当初始化应用程序时,可以比较容易地将其放在main函数中。但当你写一个库函数时, 就不能在main里面初始化了,你可以用静态初始化,但使用一次初始(pthread_once_t)会比较容易些。
一、为什么要使用条件变量 一个典型的实例: 在一条生产先线上有一个仓库,当生产者生产的时候需要锁住仓库独占,而消费者取产品的时候也要锁住仓库独占。如果生产者发现仓库满了,那么他就不能生产了,变成了阻塞状态。
一、读写锁的概念 1、读写锁与互斥量类似,不过读写锁有更高的并行性。互斥量要么加锁要么不加锁,而且同一时刻只允许一个线程对其加锁。对于一个变量的读取, 完全可以让多个线程同时进行操作 2、pthread_rwlock_t rwlock 读写锁有三种状态,读模式下加锁,写模式下加锁,不加锁。
对于内核的内存管理,像kmalloc,vmalloc,kmap,ioremap等比较熟悉。而对用户层的管理机制不是很熟悉,下面就从malloc的实现入手.( 这里不探讨linux系统调用的实现机制.
一、为什么要使用互斥量 1、当多个线程共享相同的内存时,需要每一个线程看到相同的视图。当一个线程修改变量时,而其他线程也可以读取或者修改这个变量,就需要对 这些线程同步,确保他们不会访问到无效的变量 2、在变量修改时间多于一个存储器访问周期的处理器结构中,当存储器的读和写这两个周期交叉时,这种潜在的不一致性就会出现。
一、概念 1、线程可以安排它退出时的清理操作,这与进程的可以用atexit函数安排进程退出时需要调用的函数类似。这样的函数称为线程清理处理程序。线程 可以建立多个清理处理程序,处理程序记录在栈中,所以这些处理程序执行的顺序与他们注册的顺序相反 pthread_clea...
Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。
1) int accept(int s,struct sockaddr * addr,int * addrlen); 函数说明 accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过,当有连线进来时 accept()会返回一个新的socket处理代码,往后的数据传送与读取就是经由新的socket处理,而原来参数s的socket能继续使用 accept()来接受新的连线要求。
在编译下面的代码时,碰到了undefined reference to `pthread_atfork'的错误:代码来自《POSIX多线程程序设计》 /* * atfork.c * Demonstrate the use of "fork handlers" to protect data invariants across a fork.
一、发送信号的函数 int pthread_kill(pthread_t thread, int sig); 1、别被名字吓到,pthread_kill可不是kill,而是向线程发送signal。
我们接上一篇继续学习,这一篇的重点放在线程栈上。 我们用过pthread_create接口,也用过pthread_self接口,请看manual中的声明: #include pthread.
1、 什么是进程 一个正在运行的程序就是一个进程 2、 并发、并行、异步、同步、临界区 并发:针对一个处理器,看起来同时进行。一个处理器在同一时刻只能执行一个程序,但是CPU在多个进程之间快速切换,所以看起是同时进行的。
1 实验目的 掌握多播的原理及如何进行多播报文的发送和接受 2 注意事项 需包括 ws2tcpip.h 文件 发送者和所有接受者在同一网内 不考虑 TTL 值,回环状态 通过 se...
1.概述 PING协议是用来检验本地主机与远程主机是否连接,发送的是ICMP ECHO_REQUEST包。普通的套接字是基于TCP或者是UDP的,无法发送ICMP包,所以必须用原始套接字来实现。
1.概念 前面介绍的TCP,UDP都是单播方式,即一对一.而广播是一台主机向局域网内的所有主机发送数据。这时,同一网段的所有主机都能接收到数据。发送广播包的步骤大致如下: (1)确定一个发送广播的接口,如eth0 (2)确定广播的地址,通过ioctl函数,请求码设置为SIOCGIFBRDADDR得到广播的地址 (3)使用这个广播地址进行广播 由于TCP协议是端到端的协议,在通信之前,必须建立连接,三次握手之后才能发送数据。
1.概念 单播是用于两个主机之间传送数据,广播是一个主机对局域网内的所有主机发送数据。而多播,又称为组播,它是对一组特定的主机通信。将网络上同一类型 业务逻辑上分组,只和组内的成员通信,其它主机没有加入组则不能通信。
一、线程取消 将正在运行的线程取消执行,一个线程可以取消另一个线程,线程也可以自己取消自己。当线程被取消之后,会调用清理函数 二、取消函数 int pthread_cancel(pthread_t tid) 取消tid指定的线程,成功返回0。
一、线程连接的作用 int pthread_join(pthead_t tid, void **rval) 1、调用该函数的线程会一直阻塞,直到指定的线程tid调用pthread_exit、从启动例程返回或者被取消 参数tid就是指定线程的id 参数r...
一、元器件 1、AT89C51 关于51单片机就不在啰嗦了,相信大家都已经很熟悉了,关于它的一些常用细节,已经在另一篇博文中提到 http://blog.chinaunix.net/uid-29270124-id-4571661.html2、8x8点阵 点阵里面就是一些二极管啦,通过纵横交叉连接,横8竖8,每个交叉点都接一个二极管。
一、exit是危险的 如果进程中的任意一个线程调用了exit,_Exit,_exit,那么整个进程就会终止二、不终止进程的退出方式 普通的单个线程有一下3中方式退出,这样不会终止进程 (1)从启动例程中返回,返回值是线程的退出码 (2)线程可以被同一进程中的其他线程取消 (...
一、初始线程/主线程 1、当c程序运行时,首先运行main函数。在线程代码中,这个特殊的执行流被称作初始线程或者主线程。你可以在初始线程中做任何普通线程可以做的事情。 2、主线程的特殊性在于,它在main函数返回的时候,会导致进程结束,进程内所有的线程也将会结束。
试一试这个。。。
一、线程的ID pthread_t:结构体(FreeBSD5.2、Mac OS10.3)/unsigned long int(linux) /usr/include/bits/pthreadtypes.
一、什么是线程 进程:一个正在执行的程序,它是资源分配的最小单位 进程中的事情需要按照一定的顺序逐个进行,那么如何让一个进程中的一些事情同时执行?服务器的例子 线程:有时又称轻量级进程,程序执行的最小单位,系统独立调度和分派cpu的基本单位,它是进程中的一个实体。
linux 多线程信号总结(一) 1. 在多线程环境下,产生的信号是传递给整个进程的,一般而言,所有线程都有机会收到这个信号,进程在收到信号的的线程上下文执行信号处理函数,具体是哪个线程执行的难以获知。
用户定位一、简单的UserLocation 1、UserLocation用来干什么 获取用户位置,追踪用户移动 2、UserLocation的关键API LocationManager: 用于管理定位的服务 LocationProvider:提...
蓝牙操作 一、什么是蓝牙 1、Bluetooth广泛使用的一种无线通讯协议 2、主要针对短距离通讯(10m) 3、常用于耳机、鼠标、键盘等移动通讯设备 二、与蓝牙相关的API 1、BluetoothAdapter:代表本地蓝牙设备 2、BluetoothDevice:代...
一.pthread_create()之前的属性设置1.线程属性设置我们用pthread_create函数创建一个线程,在这个线程中,我们使用默认参数,即将该函数的第二个参数设为NULL。
Mindmanager 2012在安装后,总是出现以下错误提示,然后退出程序 Microsoft Visual C++Runtime Library Runtime Error!Program: D:\Mindjet\MindManager10\MindManager.
Redhat Linux fc3下小企鹅输入法的安装 一、下载; 源码包: fcitx-*.tar.bz2 请到 http://www.fcitx.org 下载区下载; 二、准备工作 停止iiimf服务 #service iiim stop 从系统服务里删...
概述:将Animation应用于activity里的每一个控件,实现漂亮的动画效果 一、什么是LayoutAnimationController 1、LayoutAnimationController用于为layout里面的每一个空间或者ViewGroup里面的控件设置动...
概述:利用AnimationSet使所有的动画效果同时显示一、AnimationSet的使用 1、它是Animation的 一个子类 2、一个AnimationSet包含了一系列的Animation 3、针对AnimationSet设置一系列的属性,可以...
在xml中实现animation 一、在res文件夹下新建一个名为anim的文件夹 二、创建xml文件,首先加入set标签 xmlns:android="http://schemas.
一、Animations:提供一系列的动画效果,可以应用在绝大多数控件二、总体分为两类: 1、Tween Aniomations 提供旋转、移动、伸展、淡出等效果 2、Freme-by-Frame Animations 创建一个Drawable序列,这些序列按照一...
一、 什么是AppWidget 桌面上见到的那种一个个的小窗口,利用这个小窗口可以给用户提供一些方便快捷的操作,有点像快捷方式。。。 二、 与AppWidget相关的数据 1、AppWidgetProviderInfo对象,为appWidget提...
1、普通进度条 android:id="@+id/firstBar" //设置进度条的样式为水平的 style="?android:attr/progressBarStyleHorizontal" a...
spinner,也就是下拉列表。在android中的下拉列表和windows中略有不同 ,它一弹出对话框的形式出现。 创建一个spinner的方法: 1、在布局文件中声明 android:id = "@+id/spinnerId" ...
/*************************************************************************************************PROJECT: wifi遥控小车HARDWARE: STC89C52RC...
/************************************************************************************************* PROJECT: wifi遥控小车 HARDWARE: STC...
由于项目的需要不得不停止之前拟定的android学习计划,学习了一个多月已经做了几个项目了,虽然这些项目整体比较简单,但是对于了解android还是有很大的帮助,项目的内容主要是广播电视相关的实现,主要完成电视播放、电视的控制等部分。
我学习android的时间也有了一段时间,之前一直忙于视频问题的解决,关于android的一些功能还是需要慢慢的去学习,学习了一些东西还是需要静下心来总结和分析的。 最近在做一个简单的应用,为之前的设备制作一个配置的功能,其实该功能的作用很简单就是为了在产品出厂前或者交给客户前能够通过设定一些简单的配置用来验证设备的正确性。
最近项目忙完了,老大又不让我做android了,总之快速开发接触的东西会很多,只要能解决问题的都是好方法,但从个人的角度而言,快速的开发让人无法深入了解一些技术,虽然现在在项目中可能不会做android了,但是既然开始学习了就不要放弃,继续自己的学习。
在平板的开发过程中通常都会采用多个Fragment的实现方式,通常有一个为list的Fragment,以及一个detail的Fragment的形式,这种实现方式通常被称为Master-Detail的模式。
在Andorid中其他的线程不能直接的更新UI控件,在获取数据相对较费时间的处理中通常在其他 线程中完成,在该线程加载成功之后再由主线程执行对应的显示操作,这样就减少了对用户体验的影响。
点击(此处)折叠或打开 package com.example.incoming_number; import java.
1、在C语言的运行过程中,需要内存来存储数据。C语言使用的内存总体可以分为两类:一类是静态区,一类是动态区。 2、静态数据存储区包含:只读数据区、已初始化的读写数据区、未初始化的读写数据区 动态数据存储区包含:栈内存区域、堆内存区域 3、C语言编写的程序经...
MSP430在用JTAG下载的时候,Hex文件是用不上的。但是如果用Proteus仿真的话(只有Proteus 7.6及其以上版本才支持MSP430仿真),只支持Hex文件仿真,所以有必要输出Hex文件。
51单片机项目实战之51基础知识篇 51单片机开发需要准备的知识以及软件:c语言,以C语言为基础来编写单片机程序keil软件:51开发集成环境protues软件:电路仿真软件 MCS-51单片机的硬件结构: 1、 微处理器(CPU) 2、 数据存...