C++多线程笔记(一):并发,进程,线程,可执行程序

一、并发

对于单核CPU ,某一时刻只能进行一项任务,要进行任务切换,任务切换要有时间开销。

对于多核CPU(双,4,8...)

主要目的:CPU同时执行多个任务,提高性能。

并发的实现方法

实现并发:1.使用多进程实现;2.单个进程中,创建多个线程。

多进程:进程之间的通信。

eg:账号服务器和游戏逻辑服务器是两个进程。两个进程要进行通信。

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

不同电脑:socket通信技术。

多线程:在单个进程中创建多个线程。

特点:

线程是轻量级的进程,每个线程都有自己独立的运行路径,一个进程中的线程共享地址空间。

进程之间的传递:全局变量,指针,引用可以在线程之间引用。多线程开销小于多进程。

数据一致性问题:共享内存带来的问题。

优先考虑多线程编程。

二、可执行程序

win下:.exe

Linux下:  rwxrwxrwx(x执行权限)

三、进程

进程:运行一个可执行程序,就开启一个进程。

进程:运行起来的可执行程序。

进程可以在任务管理器中看到。

运行可执行程序:

win下:双击可执行文件;

Linux下:./文件名。

四、线程

每个进程,都有一个主线程;有进程,必然有主线程。

主线程唯一,一个进程中只有一个主线程。

运行可执行程序,产生一个进程,然后就会自动产生一个主线程。

运行程序的时候,实际上是进程的主线程来执行main函数的代码。

主线程和进程的寿命一致,主线程结束了,对应的进程也就结束了。

线程:是用来执行代码的。可以理解为一条代码的执行道路。

eg:主线程是从main函数开始,到return 结束。

每新建一个线程,就可以在同一时刻多干一件不同的事。

线程不可以建很多(200-300),每建立一个线程,就会消耗大量的堆栈空间(占据内存,大约1M);切换会占用时间。

一个进程至少有一个线程,就是主线程。

多线程可以同时干多个事,来提高效率,但是并不是越多越好。

优点:启动快,轻量级;

采用共享内存的通信方式,执行速度快,系统资源开销少。

缺点:存在数据一致性问题。

之前的:不可以跨平台。

C++11新标准线程库:C++语言本身增加了多线程的支持,支持跨平台开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值