想问一下,如果我想同时最多只运行n个线程(n个线程做的工作是一样的),应该如何实现? 多进程的话,可以用wait,等待任意一个进程的结束,然后开始一个新的进程,从而保证总进程数是一定的。可多线程里的pthread_join只能等待一个特定的进程(类似于waitpid),这应该怎么办呢?
by datou123654789 - 程序开发 - 2004-11-09 08:18:59 阅读(709) 回复(1)
在linux中运行多线程程序,比如有A,B两个线程,那会不会因为B线程过于耗费时间,从而影响A线程的时间片,进而影响其性能? 比如B线程一直在记录数据库时,A的性能会不会比B在睡眠要低?
关于linux下多线程编程,小弟遇到了点麻烦,请各位指导一下,谢谢. 这是编译时的错误信息: [root@localhost thread]# g++ -o mutilthread main.cpp main.cpp: In function `int main()': main.cpp:14: error: invalid conversion from `void*' to `void*(*)(void*)' main.cpp:14: error: initializing argument 3 of `int pthread_create(pthread_t*, const pthread_attr_t*, void*(*)(void*), void*)' main.cpp:17: error: `exit'...
我最近在尝试将原来的dos下的程序重新在linux下用多线程重新写,在看过了网上前辈的教程之后,我看到如下程序:#include
下面是个多线程同步的简单模型在linux下的代码,但有错误,会出现死锁!哪位高手
能帮我解决?!谢谢!
#include
现有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 ); ...