如何使用c 新开线程做某事
时间: 2024-03-10 20:49:19 浏览: 15
在 C 语言中,可以使用 pthread 库来创建新的线程。下面是一个简单的例子:
```
#include <stdio.h>
#include <pthread.h>
void* do_something(void* arg) {
// 在这个函数中可以进行需要新线程完成的操作
printf("This is a new thread.\n");
return NULL;
}
int main() {
pthread_t tid;
pthread_create(&tid, NULL, do_something, NULL);
pthread_join(tid, NULL);
printf("The new thread has finished.\n");
return 0;
}
```
在这个例子中,我们定义了一个函数 `do_something`,它将在新线程中执行。在 `main` 函数中,我们使用 `pthread_create` 函数来创建新线程,并将 `do_something` 作为新线程的入口函数。然后,我们使用 `pthread_join` 函数来等待新线程的完成。最后,我们输出一条消息表明新线程已经完成。
需要注意的是,新线程的入口函数必须是一个无返回值、参数为 `void*` 的函数。在上面的例子中,我们并没有传递任何参数给 `do_something` 函数,因此在调用 `pthread_create` 函数时传递了一个 `NULL` 指针。如果需要传递参数,可以将它们打包成一个结构体,并将结构体的指针作为参数传递给 `pthread_create` 函数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)