发新话题
打印

linux中线程问题请教

linux中线程问题请教

* example.c*/% q8 k% J$ t! G7 W( C
#include <stdio.h>  N( |" i" [* k3 S' u
#include <pthread.h>
5 o$ {' ^( T2 b1 A8 ?void thread(void)* A' `' W  \% i# W! U
{
' Z# }1 \- ?6 b6 U9 N& Y+ @int i;" r0 `4 k0 W3 O: x
for(i=0;i<3;i++)
3 N& e0 p. g/ y) y( Kprintf("This is a pthread.\n");, z! S8 ~1 ]% u* Z" i7 l
}
3 Y- Z4 e, ^/ H/ B1 Y
6 j4 f2 M) `4 Yint main(void)
4 s/ m5 U7 ?& I3 F/ U* p{
% |5 V2 ~' \' r; n' Apthread_t id;
/ z7 E* w7 n0 {! Zint i,ret;
) c. g# ~  H5 h! B( i7 R+ v, m7 Yret=pthread_create(&id,NULL,(void *) thread,NULL);% Y% s6 ]. Z* ]
if(ret!=0){: ~3 B' V  O& {, \8 y
printf ("Create pthread error!\n");
1 `8 O: U( b5 z% v5 \  j0 Oexit (1);
" K4 ^" P/ m- P; M5 J3 R: H}5 }$ r8 z5 d+ M) c, h
for(i=0;i<3;i++)- g1 d1 M9 ~" N1 ^" U
printf("This is the main process.\n");4 B4 |9 Y/ p, G$ n/ Y7 I, b5 h- {
pthread_join(id,NULL);
4 E: Z( }+ _9 f* @/ n: N! k3 Xreturn (0);
& u. U3 m$ p2 ~}' n- r; Z% D7 D! z

! z  E. J9 X3 i( o- R这个程序是我在网上找的,但是我输入后调试,运行的结果怎么都不是并发的,而是子线程先执行完了以后在执行主线程,我将数字都改的很大了(i的值改成300)结果也一样,再建立了一个新线程,结果依旧,仍然是一个一个的执行,不知何故,望高手们指教,我先在这里谢谢了!!!      

TOP

不要轻易"相信"别人, 自己写一个为好      
'
梅须逊雪三分白 雪却输梅一段香

TOP

发新话题