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的线程。