C/C++教程

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

本文主要是介绍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++语言本身增加了多线程的支持,支持跨平台开发。

这篇关于C++多线程笔记(一):并发,进程,线程,可执行程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!