线程的基本用法
线程基本概念
1.线程是进程的一个执行单元,CPU的基本调度单位,一个进程可以包括多个线程。

2.线程的应用场景: I/O 密集型的任务。
我之前一直难以理解多线程,后面具体写了代码才渐渐懂了。很多理论的内在逻辑都可以在日常生活中得到具象化体现。
例子:下图简述了喝茶的步骤。如果在烧水的同时洗茶壶,这样整个过程是不是所用时就缩短了。

C++中应用多线程
线程的头文件:
#include <thread>
线程常见的函数
std::thread t1(thread_name); //启动线程
t1.join() //等待线程结束
t1.detach() //线程分离
#include <iostream>
#include <thread>
void produce_task()
{
int number = 10;
printf("启动 produce 线程 \n ");
for(int i = 0 ;i < number ; i++ )
{
printf("i = %d \n" , i );
}
}
int main()
{
std::thread t1(produce_task); //创建线程
t1.join(); //等待线程结束
return 0;
}
输出结果:
启动 produce 线程
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
C语言中应用多线程
pthread_attr_init():
1.属于 POSIX 线程库(pthread),是 C 语言级别的线程 API
2.主要用于 C 语言开发,也可在 C++ 中调用(需包含 <pthread.h> 并链接线程库)
3.依赖操作系统提供的 POSIX 标准支持(如 Linux、macOS,Windows 需通过 WSL 或第三方库模拟)
#include <pthread.h>
void* thread_func(void* arg) { /* 线程逻辑 */ }
int main() {
pthread_t tid;
pthread_attr_t attr;
// 1. 初始化属性对象
pthread_attr_init(&attr);
// 2. 配置属性(如设置分离状态)
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
// 3. 使用属性创建线程
pthread_create(&tid, &attr, thread_func, NULL);
// 4. 销毁属性对象
pthread_attr_destroy(&attr);
// 无需 join(),因为线程已分离
return 0;
}

浙公网安备 33010602011771号