C++多线程编程

1、并发、进程、线程概念

并发:

两个或者多个独立的活动同时进行

并发假象:单核CPU(上下文的切换方式实现并发)

进程:

计算机中程序关于某一个数据集合上的一次运行活动(exe的运行状态)

线程:

每一个进程都有一个主线程并且只有一个主线程

vs编译器中按ctr+f5运行程序实际是主线程调用main函数的代码

线程可以为一个运行代码的通道,路径,我们可以创建

并发的实现

1、多进程实现并发

主要解决的问题进程间通信的问题

No1 一个电脑上:管道,文件, 消息队列,内存共享

No2 不同电脑 通过SOCKET网络通信实现

2、单个进程,多个线程实现并发,就是一个主线程多个子线实现并发

一个进程中的所有线程共享的内存空间 例如:全局变量,指针引用

2.线程的多种创建方式

C++线程创建过程

2.1 #include <thread>

2.2 创建线程:调用thread类去创建一个线程对象

注意点:创建一个线程,不做处理会调用abort函数终止函数

2.3 join函数加入,汇合线程,阻塞主线程, 等待子线程执行结束,才会回到主线中

2.4 detch()函数 分离,打破依赖关系,把子线程驻留后台

  从 detch后就不能够在join

2.5 joinable()判断当前线程是否可以做join或者detch过程, 可以返回true,不可以返回false

其他创建线程的方式

1、普通函数方式上面讲过

2、通过类和对象

3、Lambda表达式创建线程

4、带参的方式创建线程

5、带智能指针创建线程

6、通过类的成员函数创建线程

#include <iostream>

#include<thread>

using namespace std;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值