pthread_join 函数是会阻塞主线程的,这会让很多java程序员不适应。因为在java中
start以后一个线程就执行执行了。主线程不会被阻塞。
而在linux中 join是会阻塞的。
那么如何使用join的时候 不阻塞主线程呢。我给出了一个解决方法。
#include <stdio.h>
#include <pthread.h>
void *print_count(int c);void thread_start();
int main(int argc, char const *argv[])
{pthread_t t1;
pthread_create(&t1,NULL,thread_start,NULL);
printf("start main\n");
sleep(3);
printf("done main\n");
return 0;
}void thread_start()
{
pthread_t t1;pthread_create(&t1,NULL,print_count,3);
pthread_join(t1,NULL);
}
void *print_count(int c)
{int i;
for (i = 0; i < c; ++i)
{
/* code */
printf("i == %d\n", i);
}}
关于pthread_join函数在使用时如何不阻塞主线程的一种探索,布布扣,bubuko.com
时间: 2024-10-10 02:39:10