c++的线程创建与撤销
时间: 2024-05-03 10:22:17 浏览: 86
实验一:线程的创建与撤销
C语言中的线程创建和撤销需要使用线程库,如pthread库。
线程创建:
1. 包含头文件:
```c
#include <pthread.h>
```
2. 定义线程函数:
```c
void* thread_func(void* arg)
{
//线程执行的代码
}
```
注意:线程函数需要返回void指针类型,并且只能有一个参数,如果没有参数,可以使用NULL代替。
3. 创建线程:
```c
pthread_t tid; //线程ID
pthread_create(&tid, NULL, thread_func, arg);
```
pthread_create函数的第一个参数是线程ID,第二个参数是线程属性(可以为NULL),第三个参数是线程函数,第四个参数是线程函数的参数。
线程撤销:
1. 等待线程结束:
```c
pthread_join(tid, NULL);
```
pthread_join函数的第一个参数是线程ID,第二个参数是线程返回值(可以为NULL)。该函数会阻塞调用线程,直到指定的线程结束。
2. 或者使用pthread_cancel函数直接撤销线程:
```c
pthread_cancel(tid);
```
pthread_cancel函数的参数是线程ID,调用该函数会向指定线程发送取消请求,但并不一定立即终止线程执行。线程需要在适当的时候检测取消请求并进行清理工作。
阅读全文