当前位置: 技术问答>linux和unix
Linux与Windows下编程对照?
来源: 互联网 发布时间:2015-09-04
本文导语: 各位,本人刚转到linux上来学编程,呵呵,还一窍不通哦,因为主要想搞POSIX多线程编程,所以对线程同步方面想理清思路,windows下WaitForSingleObject和WaitForMultiObjects可以对mutex、event和semaphore(还有线程进程句柄等)等...
各位,本人刚转到linux上来学编程,呵呵,还一窍不通哦,因为主要想搞POSIX多线程编程,所以对线程同步方面想理清思路,windows下WaitForSingleObject和WaitForMultiObjects可以对mutex、event和semaphore(还有线程进程句柄等)等待,linux下是pthread_join,信号量用sem_wait?这个函数是等线程结束吧,我的线程是生产者和消费者形式,线程a作完事释放信号量通知线程b,但它自己不会也不能结束,线程b接到通知去做后续处理,它处理完也不能终止,那如何等待呢,另外又如何实现同时等待多个句柄呢?
|
楼主要说的是两个进(线)程的同步问题吗?大概用三个信号量就能搞定。
1个用作两个进程互斥 (进入临界区)
1个用作生产者生产(缓存区是否有足够空间存放数据)
1个用作消费者消费(缓存区中是否有新的数据)
具体看这本绝世好书,里面写的很详细
《UNIX 网络编程(第二版)第2卷:进程间通信 》 Richard Stevens
1个用作两个进程互斥 (进入临界区)
1个用作生产者生产(缓存区是否有足够空间存放数据)
1个用作消费者消费(缓存区中是否有新的数据)
具体看这本绝世好书,里面写的很详细
《UNIX 网络编程(第二版)第2卷:进程间通信 》 Richard Stevens
|
用pthread_cond一类和pthread_mutex一类啊,通知,暂停都可以做的。
|
可以使用互斥锁和条件变量进行同步和通知
下面有一个网址介绍Linux下面的POSIX编程
http://www-900.ibm.com/developerWorks/cn/linux/theme/special/index.shtml#posix
欢迎光临我的个人网站 www.linuxc.net
下面有一个网址介绍Linux下面的POSIX编程
http://www-900.ibm.com/developerWorks/cn/linux/theme/special/index.shtml#posix
欢迎光临我的个人网站 www.linuxc.net
|
PThread a,b;
... //a do his job
b.pthread_join;//b wait for a finish his job
.... //a do his job
a.pthread_join;//a wait for b finish his job
... //a do his job
b.pthread_join;//b wait for a finish his job
.... //a do his job
a.pthread_join;//a wait for b finish his job