linux多线程pthread使用
头文件pthread.h
pthread_t pthid;
pthread_create(&pthid, null, func, null)创建线程。
pthread_join(pthid, NULL)等待该线程执行完毕后再退出,阻塞(线程挂起,不再占用CPU)。
pthread_self()可获得本线程的id。%ld
线程互斥锁
pthread_mutex_t mutex1
pthread_mutex_init(&mutex1, null)初始化互斥锁
pthread_mutex_lock(&mutex1)
//加锁和解锁成对出现
pthread_mutex_unlock(&mutex1)
最后要记得销毁互斥锁pthread_mutex_destroy(&mutex1)
在linux中线程的本质还是进程
pthread_create(&pthid, null, func, null)对进程的复制。
线程同步
pthread_cond_t cond1
pthread_cond_init(&cond1, null) 初始化条件变量
使用条件变量前必须进行加锁
pthread_mutex_lock(&mutex1)
pthread_cond_wait($cond1, &mutex1) //阻塞,在阻塞的同时要进行解锁,否则会造成死锁
pthread_mutex_unlock(&mutex1)
pthread_cond_signal(&cond1) //激活函数,通知其他进程
pthread_cond_destroy(&cond1) //销毁