标签:lap 技术 child hid isp 执行 names pthread 序列
一、pthread_once使相关代码只执行一次
这个函数使用初值为PTHREAD_ONCE_INIT的once_control变量保证init_routine()函数在本进程执行序列中仅执行一次。
#include <pthread.h> int pthread_once(pthread_once_t *once_control, void (*init_routine) (void))
#include <iostream> #include <pthread.h> #include <unistd.h> using namespace std; pthread_once_t once = PTHREAD_ONCE_INIT; void once_run(void) { cout<<"once_run in thread "<<(unsigned int )pthread_self()<<endl; } void * child1(void * arg) { pthread_t tid =pthread_self(); cout<<"thread "<<(unsigned int )tid<<" enter"<<endl; pthread_once(&once,once_run); cout<<"thread "<<tid<<" return"<<endl; } void * child2(void * arg) { pthread_t tid =pthread_self(); cout<<"thread "<<(unsigned int )tid<<" enter"<<endl; pthread_once(&once,once_run); cout<<"thread "<<tid<<" return"<<endl; } int main(void) { pthread_t tid1,tid2; cout<<"main thread enter"<<endl; pthread_create(&tid1,NULL,child1,NULL); pthread_create(&tid2,NULL,child2,NULL); sleep(10); cout<<"main thread exit"<<endl; return 0; } /* main thread enter thread 4144080640 enter once_run in thread 4144080640 thread 139667890611968 return thread 4152473344 enter thread 139667899004672 return main thread exit */
标签:lap 技术 child hid isp 执行 names pthread 序列
原文地址:https://www.cnblogs.com/hellokitty2/p/10799216.html