Linux 系统下的多线程遵循 POSIX 线程接口,称为 pthread。编写 Linux 下的多线程 程序,需要使用头文件 pthread.h,连接时需要使用库 libpthread.a。编写多线程程序 example.c,说明线程创建函数
时间: 2024-02-05 21:11:07 浏览: 61
在 Linux 系统下,我们使用 pthread 库来实现多线程。pthread 库中的线程创建函数是 pthread_create(),其函数原型如下:
```c
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
```
该函数有四个参数:
- `thread`:表示指向线程标识符的指针。线程标识符是系统级唯一的标识符,用于标识线程。
- `attr`:表示指向线程属性的指针。可以为 NULL,表示使用默认属性。
- `start_routine`:表示指向线程函数的指针,该函数必须返回 `void *` 类型,并且接受一个 `void *` 类型的参数。
- `arg`:表示传递给线程函数的参数。可以为 NULL,表示不传递参数。
例如,在 example.c 文件中创建一个新线程,并调用一个名为 `thread_func` 的函数,可以使用以下代码:
```c
#include <pthread.h>
#include <stdio.h>
void* thread_func(void* arg) {
printf("Thread is running.\n");
return NULL;
}
int main() {
pthread_t thread_id;
pthread_create(&thread_id, NULL, thread_func, NULL);
printf("Main thread exiting.\n");
return 0;
}
```
在上面的例子中,我们定义了一个名为 `thread_func` 的函数作为新线程的入口点。在 `main` 函数中,我们使用 `pthread_create` 函数创建了一个新线程,并将 `thread_func` 函数作为线程的入口点。最后,我们在主线程中打印了一条消息,并返回 0。请注意,由于新线程和主线程是并发执行的,因此无法确定哪个线程会先打印输出。
阅读全文