一、线程简介
-
线程是参与系统调度的最小单位。它被包含在进程之中,是进程中的实际运行单位。
-
一个进程中可以创建多个线程,多个线程实现并发运行,每个线程执行不同的任务。
-
每个线程都有其对应的标识,称为线程 ID,线程 ID 使用
pthread_t
数据类型来表示。
二、线程的创建
线程是轻量级的并发执行单元,通过调用Linux系统提供的pthread库中的函数来创建和管理线程。
- 包含头文件:
#include <pthread.h>
- 定义线程函数:
线程函数是线程实际执行的函数,可以是任何可以被调用的函数。线程函数的原型如下:
void* thread_function(void* arg);
其中arg
是传递给线程函数的参数,可以是任何类型的数据。线程函数的返回值为void*
类型,可以返回任何类型的数据。
- 创建线程:
创建线程需要调用pthread_create
函数。该函数的原型如下:
int pthread_create(pthread_t* thread, const pthread_attr_t* attr, void* (*start_routine)(void*), void* arg);
参数 | 类型 | 描述 |
---|---|---|
thread |
pthread_t * |
用于存储新线程标识符的指针 |
attr |
const pthread_attr_t * |
用于指定新线程的属性,如栈大小、调度策略等,可以为 NULL,表示使用默认属性 |
start_routine |
void *(*)(void *) |
新线程的起始函数,需要返回 void 指针类型的结果,并且带有一个 void 指针类型的参数 |
arg |
void * |
传递给新线程起始函数的参数,可以为 NULL |
返回值 | int |
0 表示成功,非 0 表示失败,错误代码保存在 errno 中 |