Linux下关于互斥锁及同步的移植(一)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-28
讲完了前面关于多线程的基础知识后,说一下我最近关于移植的一些体会.
将win32程序关于多线程的内容移植到Linux下面,不能简单的按照函数对应来移植.不过通过下面的对应关系,再加上你对这些模式的深入了解,相信会移植的很成功.
信号量
Windows 信号量是一些计数器变量,允许有限个线程/进程访问共享资源.Linux POSIX 信号量也是一些计数器变量,可以用来在 Linux 上实现 Windows 上的信号量功能.
CreateSemaphore() 创建或打开一个有名或无名的信号量.
sem_init() 来创建一个无名的 POSIX 信号量,这个调用可以在相同进程的线程之间使用.它还会对信号量计数器进行初始化:int sem_init(sem_t *sem, int pshared, unsigned int value) .在这段代码中:
semget() 用于创建 System V 信号量,它可以在不同集成的线程之间使用.可以用它来实现与 Windows 中有名信号量相同的功能.这个函数返回一个信号量集标识符,它与一个参数的键值关联在一起.当创建一个新信号量集时,对于与 semid_ds 数据结构关联在一起的信号量,semget() 要负责将它们进行初始化,方法如下:
int semget(key_t key, int nsems, int semflg) .下面是对这段代码的一些解释:
|
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 磁盘空间监控脚本--简约而不简单(shell编程实例)下一篇: Linux常用网络命令
关于Linux下关于互斥锁及同步的移植(一)的所有评论