多线程使用

1.创建线程

pthread_cread(pthread_t tid, attr, (void*) pFun(void*), (void*)arg) 

在新线程tid内执行指定函数pFun,参数为arg,原有线程继续往下执行;

2.结束线程

pthread_exit((void*) retValue)    

结束当前线程,并返回retValue;

作用:把当前进程变成僵尸线程,但是并不回收资源

3.回收线程

pthread_join(pthread_t tid, (void*) recValue)

回收线程tid的资源,并接收返回值recValue;

作用:结束掉正在等待回收资源的僵尸线程。

4.结束进程

exit() 

会导致当前进程下的多线程强制退出,产生内存泄露,所以慎用。

还有一个孤儿线程,指的是主线程退出(使用pthread_exit()),导致该主线程下的子线程没有了父线程。

5. 创建,使用互斥锁

mutex mtx;

mtx.lock(); 

mtx.unlock();

本质:某个线程调用lock之后,会阻塞其他再调用luck的线程。

原文地址:https://www.cnblogs.com/Younger-Zhang/p/15323092.html