- 论坛徽章:
- 1
|
本帖最后由 registcn 于 2014-04-03 09:16 编辑
- #include <pthread.h>
- pthread_t id;
- void printid(char *s){
- printf("%s pid %u,tid %u\n",s,getpid(),pthread_self());
- }
- void * pself(void * arg){
- printid("new:");
- return ((void *)0);
- }
- int main(void){
- pthread_create(&id,NULL,pself,NULL);
- printid("old:");
- //sleep(1);
- exit(0);
- }
复制代码 问题1)
当printf语句没有\n结束时候,打印出来
old zzzz
new xxxx
有了\n就打印出
old zzzz
new xxxx
new xxxx
为啥多一行呢?
这是仿照apue11-1写的程序,发现比原代码少一行sleep(1),如果加上,那么即使带\n,输出也是两行了。
初学多线程,这其中奥秘是啥?
问题2)
APUE讲linux用clone实现线程,线程应有独立pid,但是我测出来pid都是一样的?何解?
|
|