好久没发贴了 发一个演示多线程的C语言代码吧
程序代码:
#include <stdio.h> #include <stdlib.h> #include <pthread.h> void *functiony( void *ptr ); void *functionx( void *ptr ); int a, b, c; main() { pthread_t thread1, thread2; char *message1 = "Thread 1"; char *message2 = "Thread 2"; int iret1, iret2; /* Create independent threads each of which will execute function */ iret1 = pthread_create( &thread1, NULL, functiony, (void*) message1); iret2 = pthread_create( &thread2, NULL, functionx, (void*) message2); /* Wait till threads are complete before main continues. Unless we */ /* wait we run the risk of executing an exit which will terminate */ /* the process and all threads before the threads have completed. */ pthread_join( thread1, NULL); pthread_join( thread2, NULL); printf("\nThread 1 returns: %d\n",iret1); printf("Thread 2 returns: %d\n",iret2); printf("c = %d\n",a+b); exit(0); } void *functiony( void *ptr ) { char *message; message = (char *) ptr; printf("%s \n", message); a=1; while(a<=99) { printf("/"); a++; } } void *functionx( void *ptr ) { char *message; message = (char *) ptr; printf("%s \n", message); b=1; while(b<=99) { printf("."); b++; } }
从输出的.和/能看出线程的执行状态。。。