ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

44、基于 Pthreads 的多线程编程基础

44、基于 Pthreads 的多线程编程基础

基于 Pthreads 的多线程编程基础

1. 多线程动态调整

在实际应用中,许多强大的服务器(如 Apache 和 NGINX)会根据具体情况、配置预设和当前工作负载,动态创建和调整所需的线程数量。这为多线程应用程序的设计提供了思路。

2. 线程属性

在创建线程时,pthread_create(3)函数的第二个参数是指向线程属性结构的指针const pthread_attr_t *attr。若传入NULL,库会使用默认属性创建线程。但对于真正的可移植应用程序,这样做并不够,因为不同实现的默认线程属性差异很大,所以应在创建线程时明确指定线程属性。

以下是线程属性的详细信息:
| 属性 | 含义 | 相关 API | 可能的值 | Linux 默认值 |
| — | — | — | — | — |
| Detach state | 创建可连接或分离的线程 |pthread_attr_[get|set]detachstate|PTHREAD_CREATE_JOINABLEPTHREAD_CREATE_DETACHED|PTHREAD_CREATE_JOINABLE|
| Scheduling/contention scope | 线程竞争资源(CPU)的范围 |pthread_attr_[get|set]scope|PTHREAD_SC

返回列表