




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Linux编程培训哪个好 第一篇:Linux编程培训哪个好中国IT职业教育领先品牌精品课程全程面授Linux编程培训哪个好想知道Linux编程培训哪个好?先来了解一下什么是Linux编程吧!Linux编程,比需要了解线程的问题。线程间通信之信号量线程的信号量主要就是实现对公共资源的一种控制管理。当公共资源增加时,信号量的值增加;当公共资源减少时,信号量的值减少;只有信号量的值大于0时,才能访问信号量所代表的公共资源。其实功能和之前的ucos的信号量功能类似。线程信号量初始化sem_initintsem_init(sem_t*sem,intpshared,unsignedintvalue);功能介绍:该函数主要的功能是创建一个信号量,设置该信号量的值,并且设置信号量的使用范围。信号量创建成功后,可以对其进行加减操作。参数说明:千锋教育中国IT职业教育领先品牌精品课程全程面授第一个参数sem是一个指向信号量结构的指针,当信号量初始化成功后,可以的这个信号量指针进行加减操作;第二个参数表示信号量的共享属性,当其值不为0时,信号量可以在进程间共享,如果等于0,则只能在同一个进程中的多个线程间共享;第三个参数用于设置信号量初始化时候的值。2线程信号量增加函数sem_postintsem_post(sem_t*sem);功能介绍:该函数用于增加信号量的值,每次增加值为1。当有线程在等待该信号量,则等待信号量返回,不增加信号量的值。参数说明:sem参数是初始化时候创建的信号量结构体,用于记录信号量值得参数。3线程信号量减少函数sem_waitintsem_wait(sem_t*sem);功能介绍:该函数用于减少信号量的值,每次减少值为1。当信号量的值为0,则线程会阻塞一直等待信号量的值大于0为止,当值为0时,不在减少。参数说明:sem参数是初始化时候创建的信号量结构体。4线程信号量的销毁函数sem_destroyintsem_destroy(sem_t*sem);功能介绍:函数用于释放创建的信号量。千锋教育中国IT职业教育领先品牌精品课程全程面授参数说明:sem参数是初始化时候创建的信号量结构体。使用线程的信号量进行通信,可以有效的对线程资源进行合理的分配,同时可以使线程以一个合理的方式进行调度。下面的代码是一个小小的实例,用很常规的方法来使用信号量,当线程获得获得信号量之后,在处理完相应的操作之后会主动的释放掉信号量。其实可以根据信号量的wait和post自己设计使用信号量。不过需要注意的是在wait和post函数分开使用时,可能会因为线程优先级等问题,post和wait被调用的次数不是对等的,这时候这时候可能出现的问题是不可控的,在这种方式设计程序时,需要把大部分的情况考虑进去,当然可能出现的情况的种数也是从0到1质变,从1到n量变得过程。#include2#include3#include4#includesem_tsem;7intsemValue;8void*pthread_wait(void*argv)10{11while(1)千锋教育中国IT职业教育领先品牌精品课程全程面授{13sem_wait(&sem);14sem_getvalue(&sem,&semValue);15printf(“ThisisinphtreadWAITfunction!sem=%dn”,semValue);16sem_post(&sem);17sleep(1);18}19pthread_exit(“exitwaitpthread!n”);20}21void*pthread_post(void*argv)23{24while(1)25{26sem_wait(&sem);27sem_getvalue(&sem,&semValue);28printf(“ThisisinphtreadPOSTfunction!sem=%dn”,semValue);29sem_post(&sem);30sleep(1);31}千锋教育中国IT职业教育领先品牌精品课程全程面授pthread_exit(“exitpostpthread!”);33}34intmain(void)36{37pthread_tpt[2];38void*ret;39sem_init(&sem,0,2);41pthread_create(&pt[0],NULL,&pthread_wait,NULL);42pthread_create(&pt[1],NULL,&pthread_post,NULL);43pthread_join(pt[0],&ret);44printf(“returnvalue%s”,ret);45pthread_join(pt[1],&ret);46printf(“returnvalue%s

黛娥****ak
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf