由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 在main()里面创建了几个线程,如何等待所有线程都结束?
相关主题
atof strtod 有什么区别请教这个程序里用到了什么constructor啊?有几个copy constructor?
C++ online Test 又一题 (转载)help on pthreads.....
一个C语言的面试题,有点乱,麻烦看一下请问一个exception题目
请教一道题 (转载)Use Visual .NET for C++ programming
电话面试题一问 (转载)三个C syntax 弱问题
一直没有很好理解thread join itself,哪位解惑一下 (转载)奇怪的问题:关于一个简单的malloc()小程序 (转载)
求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)这个C++程序为什么不能运行
[合集] 为什么多个线程生成的随机数是一样的?一个读用户输入的小问题
相关话题的讨论汇总
话题: null话题: 线程话题: main话题: pthread话题: join
进入Programming版参与讨论
1 (共1页)
e******r
发帖数: 623
1
在UNIX环境下C语言编程。我在main()里面创建了几个线程,程序如下:
int main(int argc, char **argv) {
int i;
for(i = 0; i < N; i++) {
pthread_create(NULL, NULL, reader_thread, NULL);
}
for(i = 0; i < M; i++) {
pthread_create(NULL, NULL, writer_thread, NULL);
}
return 0;
}
我如果在创建完线程以后直接就“return 0”了,是不是所有线程也就被迫同时中止了
?如果我想在main()里面等待所有线程都执行完以后再“return 0”,应该加一个什么
function?我知道可以用sleep()来等待,但是好像有更好的函数。查了半天没有找到
,哪位朋友帮忙指点一下?有肉包相送,谢谢了。
p***o
发帖数: 1252
2
pthread_join

【在 e******r 的大作中提到】
: 在UNIX环境下C语言编程。我在main()里面创建了几个线程,程序如下:
: int main(int argc, char **argv) {
: int i;
: for(i = 0; i < N; i++) {
: pthread_create(NULL, NULL, reader_thread, NULL);
: }
: for(i = 0; i < M; i++) {
: pthread_create(NULL, NULL, writer_thread, NULL);
: }
: return 0;

T*****9
发帖数: 2484
3
pthread_join

【在 e******r 的大作中提到】
: 在UNIX环境下C语言编程。我在main()里面创建了几个线程,程序如下:
: int main(int argc, char **argv) {
: int i;
: for(i = 0; i < N; i++) {
: pthread_create(NULL, NULL, reader_thread, NULL);
: }
: for(i = 0; i < M; i++) {
: pthread_create(NULL, NULL, writer_thread, NULL);
: }
: return 0;

e******r
发帖数: 623
4
谢谢。我想过用pthread_join,但是好像要分头去join每一个我create出来的线程,比
较麻烦。但是看来没有什么更简单的了。肉包已发。
T*****9
发帖数: 2484
5
直接建一个线程号数组就行了呗
一个for loop全部join

【在 e******r 的大作中提到】
: 谢谢。我想过用pthread_join,但是好像要分头去join每一个我create出来的线程,比
: 较麻烦。但是看来没有什么更简单的了。肉包已发。

e******r
发帖数: 623
6
如果我创建完线程以后,main()直接就return 0了,是不是那些线程也同时就都被强行
中止了?

【在 T*****9 的大作中提到】
: 直接建一个线程号数组就行了呗
: 一个for loop全部join

k******I
发帖数: 238
7
写一下就知道join是干啥的了:D
r****o
发帖数: 1950
8
我想问一下join和yield的区别。
是不是join等其他线程结束,而yield可以和其他线程一起竞争?

【在 k******I 的大作中提到】
: 写一下就知道join是干啥的了:D
1 (共1页)
进入Programming版参与讨论
相关主题
一个读用户输入的小问题电话面试题一问 (转载)
a question on C++ string一直没有很好理解thread join itself,哪位解惑一下 (转载)
定义的struct数组很大时,为什么会出现奇怪的大数字?求助 怎么编辑 多个 .c files(比如a.c, b.c) 和一个.h file(ab (转载)
char ** pt1和 char * pt2[] 的区别在哪?[合集] 为什么多个线程生成的随机数是一样的?
atof strtod 有什么区别请教这个程序里用到了什么constructor啊?有几个copy constructor?
C++ online Test 又一题 (转载)help on pthreads.....
一个C语言的面试题,有点乱,麻烦看一下请问一个exception题目
请教一道题 (转载)Use Visual .NET for C++ programming
相关话题的讨论汇总
话题: null话题: 线程话题: main话题: pthread话题: join