生活随笔
收集整理的這篇文章主要介紹了
线程分离
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
線程分離的作用:當主線程與新線程無關時,主線程無需等待新線程的結束。
1、進程屬性初始化
pthread_attr_t pth_attr;?
pthread_attr_init(&pth_attr);
2、進程分離屬性設置。
pthread_attr_setdetachstate(&pth_attr,PTHREAD_CREATE_DETACHED);
3、進程創建。
4、進程屬性資源回收。
pthread_attr_destroy(&pth_attr);
#include<stdio.h>
#include<
string.h>
#include<unistd.h>
#include<stdlib.h>
#include<pthread.h>
void *thread_func(
void *
arg);
#define handle_error(msg) \
do { perror(msg); exit(EXIT_FAILURE);}
while(
0)
char message[] =
"hello Ruanchao!";
int finish=
0;
int main() {int res;pthread_t thread;pthread_attr_t pth_attr;res = pthread_attr_init(&
pth_attr);if (res !=
0) handle_error("pthread initial is failed!");res = pthread_attr_setdetachstate(&
pth_attr,PTHREAD_CREATE_DETACHED);if(res !=
0)handle_error("pthread set attr failed!");res = pthread_create(&thread,&pth_attr,thread_func,(
void *
)message);if(res !=
0)handle_error("thread creation is failed!");(void)pthread_attr_destroy(&
pth_attr);while(!
finish) {printf("Waiting for thread to end!\n");sleep(1);}printf("thread were finished!\n");exit("EXIT_FAILURE");
}
void *thread_func(
void *
arg){printf("thread_func is running,argument is %s\n",(
char *
)arg);sleep(5);finish =
1;pthread_exit(NULL);
} ?
轉載于:https://www.cnblogs.com/farbeyond/p/4488758.html
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的线程分离的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。