一般线程与独立线程

我们在进行多线程编程的时候,一般会使用pthread_create函数来创建线程。函数的原型如下:

int pthread_create(pthread_t  *thread,pthread_attr_t *attr, void *(*func)(void *),void *arg)
一般我们在编程的时候会不设置第二个参数,这个参数主要来设置线程的属性,一般设为NULL,这样的话,创建的这个线程,主线程一定要等待这个线程返回,才能释放出占用的资源,这种情况下,使用pthread_join函数来实现等待线程返回,其函数的原型如下:

 int pthread_join(pthread_t t,void* *var)
在实际的多线程编程环境中,大多数情况,我们一般不需要线程返回,这里我们需要一种新的线程称为独立线程(Detached thread),独立线程执行完毕后,自动释放其所占用的资源,独立线程自身也不需要等待其他线程的返回。创建独立线程的过程如下:

pthread_t  t;
pthread_attr_t attr_detached;
pthread_attr_init(&attr_detached);
pthread_attr_setdetached(&attr_detached,PTHREAD_CREATE_DETACHED);
pthread_create(&t,&attr_detached,func,arg);




你可能感兴趣的:(操作系统)