求助C高手,线程和函数指针的问题。
/*program 1*/void thread1(){ int i; for(i=0;i<100;i++) { printf("%s",thread1); sleep(1); }}void thread2(){ int i; for(i=0;i<100;i++) { printf("%s",thread2); sleep(2); }}void main(){ int ret1,ret2; pthread_t id1,id2; int i; ret1 = pthread_create( &id1, NULL, (void *)thread1, NULL); ret1 = pthread_create( &id1, NULL, (void *)thread1, NULL); for(i=0;i<100;i++) { printf("%s",thread3); sleep(3); } pthread_join(id1,NULL); pthread_join(id2,NULL); pthread_cancel(id1); pthread_cancel(id2);}/*program 2*/void thread1(void (*thr)()){ int i; for(i=0;i<100;i++) { printf("%s",thread1); sleep(1); } thr();}void thread2(){ int i; for(i=0;i<100;i++) { printf("%s",thread2); sleep(2); }}void main(){ int ret1; pthread_t id1; int i; ret1 = pthread_create( &id1, NULL, (void *)thread1(thread2), NULL); for(i=0;i<100;i++) { printf("%s",thread3); sleep(3); } pthread_join(id1,NULL); pthread_cancel(id1);}