想问一下,如果我想同时最多只运行n个线程(n个线程做的工作是一样的),应该如何实现? 多进程的话,可以用wait,等待任意一个进程的结束,然后开始一个新的进程,从而保证总进程数是一定的。可多线程里的pthread_join只能等待一个特定的进程(类似于waitpid),这应该怎么办呢?
现有3个线程,A,B和C。A和B负责做一些事情,C负责监视某个按键值。一旦有键被按下,A和B线程挂起,C线程做一些处理后,再继续运行A和B线程。小弟不才,望大家多多帮助,用哪种办法能实现我的要求。
我先说明下我的情况: example.c中有main函数, pthread_mutex_t mymutex;//全局 main() { …… …… pthread_mutex_init( &mymutex, NULL ); pthread_create( &id, NULL, my_net_transfer, NULL ); pthread_mutex_lock( &mymutex ); …… …… pthread_mutex_unlock( &mymutex ); } net.cpp中有my_net_transfer函数, void my_net_transfer( void ) { pthread_mutex_lock( &mymutex ); ...
多线程编程快速撑握 ============================================= 原文出自: http://atg.cublog.cn/ 作者: 董 晖 2006-03-05 注: 转载请注明原文出处 最近在unix sco 下搞多线程编程, 开始也摸不着头脑, 经过几天的周折总算是搞出来了! 如果您想了解多线程编程那你找对文章了!!! 但如果您是这方面的专家,那希望您花一点宝贵的时间读完本文! 把我写得不对与不足的地方 指出来...
linux多线程编程中引入了Thread-Specific Data(线程相关的数据)的概念 为什么需要"线程相关的数据"呢?怎样使用"线程相关的数据"呢? 1. 为什么需要Thread-Specific Data "线程相关的数据" 这里只介绍我个人认为的一个原因, 当然它还有许多其他用途,欢迎大家讨论 例子:实现同时运行两个线程,对于每个线程,在该线程调用的每个函数中打印线程的名字,以及它正在调用的函数的名字. (下面的例子与实现只是为了说明问题,有些地方可能不...
linux下的多线程编程包括了头文件
最近开始使用linux下的pthread库进行多线程编程,编写了一个很简单的程序,源代码如下:
#include
unix/linux下的多进程需要我们动手控制, 而多线程编程呢? 我认为unix/linux下的多线程编程是: 在主进程的地址空间同时运行的相同或不同函数即线程, 线程的控制是由内核的lwp来控制的, 它可以与主进程或主线程main来共享进程代码, 全局变量, 文件描述符等, 因此线程的开销远小于进程, 而同时又不需要复杂的通讯机制(通过全局变量), 但线程之间的数据同步需要我们自己来控制, 因此... 希望大家能讨论一下!
在它的一些通讯程序的例子里,有很多采用多进程模式的,比如accept到一个连接,就fork一个进程来处理.....,而这些进程之间的通讯,相互关系涉及到很多api。 关键是,在windows下编程很少碰到这种模式(一般采用多线程编程了,比较习惯了),感觉很难适应,有些概念很难理解!,如果能不学这块就算了。但是,想请问:现在,unix下编程(比如通讯方面的)到底是多采用多进程模式还是多线程模式?如果多采用多进程模式,那还是得学习这...