Linux创建一个新线程
时间: 2023-10-28 15:02:56 浏览: 42
在 Linux 中,可以使用 pthread 库来创建新线程。下面是一个简单的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *thread_func(void *arg)
{
printf("Hello, world!\n");
pthread_exit(NULL);
}
int main()
{
pthread_t thread_id;
int ret;
ret = pthread_create(&thread_id, NULL, thread_func, NULL);
if (ret != 0) {
printf("Error: Failed to create thread.\n");
exit(EXIT_FAILURE);
}
pthread_join(thread_id, NULL);
return 0;
}
```
在上面的代码中,程序创建了一个新线程,该线程调用 `thread_func` 函数并输出一条消息。`pthread_create` 函数用于创建新线程,它接收四个参数:
- `thread_id`:用于存储新线程的 ID。
- `NULL`:用于指定线程的属性。如果为 NULL,则使用默认属性。
- `thread_func`:新线程要执行的函数。
- `NULL`:传递给 `thread_func` 函数的参数。
如果 `pthread_create` 函数调用成功,则返回 0。否则,它会返回一个非零值。在上面的代码中,如果创建线程失败,则程序会输出一条错误消息并退出。
`pthread_join` 函数用于等待线程结束。它接收两个参数:
- `thread_id`:要等待的线程 ID。
- `NULL`:用于存储线程返回值的指针。如果不需要返回值,则传递 NULL。
在上面的代码中,程序会等待新线程结束,然后退出。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)