embeddedlwp 发表于 2011-12-27 11:41

pthread_create函数

程序清单 11-1 有这么一句创建线程:

err = pthread_create(&nid, NULL, thr_nr, NULL);

APUE说主线程把新线程ID存放在ntid中,但是新建的线程并不能安全的使用它,如果新线程在主线程调用pthread_create返回之前就运行了,那么新线程看到的是未经初始化的ntid的内容,这个内容并不是正确的线程ID。

新线程到底是在pthread_create返回之前开始运行,还是返回之后开始运行呢,求指点!

hanzhenlll 发表于 2011-12-27 11:51

必须是返回之后开始运行,因为你申请线程并不是所有时候都会成功。。。。根据系统配置略有不同 默认大概1000个左右 就不能继续申请了....

goingstudy 发表于 2013-06-11 11:51

那既然是返回后才运行,apue的上的那段是什么意思?
页: [1]
查看完整版本: pthread_create函数