Linux 系统下的多线程遵循 POSIX 线程接口,称为 pthread。编写 Linux 下的多线程 程序,需要使用头文件 pthread.h,连接时需要使用库 libpthread.a。编写多线程程序 example.c,说明线程创建函数
时间: 2023-12-03 14:45:06 浏览: 106
pthread_create() 的使用方法。
pthread_create() 是 POSIX 线程库中用于创建线程的函数,其原型如下:
```c
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);
```
参数说明:
- `thread`:指向 pthread_t 类型变量的指针,用于存储新创建的线程的 ID。
- `attr`:指向 pthread_attr_t 类型变量的指针,用于设置新创建的线程的属性,一般可以设为 NULL,表示使用默认属性。
- `start_routine`:指向线程函数的指针,该函数必须是一个无返回值且带有一个 void* 类型参数的函数。
- `arg`:传递给线程函数的参数,可以是任何类型的指针。
`pthread_create()` 函数的返回值为 0 表示线程创建成功,否则表示失败。
下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_hello(void *arg) {
printf("Hello, world!\n");
pthread_exit(NULL);
}
int main() {
pthread_t tid;
int ret = pthread_create(&tid, NULL, print_hello, NULL);
if (ret != 0) {
fprintf(stderr, "Error: pthread_create() failed\n");
exit(EXIT_FAILURE);
}
pthread_join(tid, NULL);
return 0;
}
```
这个程序创建了一个新的线程,线程函数为 `print_hello()`,只是简单地输出一行文本。主线程通过调用 `pthread_join()` 函数等待新线程执行完毕,然后程序结束。
阅读全文