C++多线程笔记(一):并发,进程,线程,可执行程序
2021/7/27 7:09:29
本文主要是介绍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++多线程笔记(一):并发,进程,线程,可执行程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享
- 2024-12-22el-tabs 组件只被引用了一次,但有时会渲染两次是什么原因?-icode9专业技术文章分享
- 2024-12-22wordpress有哪些好的安全插件?-icode9专业技术文章分享
- 2024-12-22wordpress如何查看系统有哪些cron任务?-icode9专业技术文章分享
- 2024-12-21Svg Sprite Icon教程:轻松入门与应用指南
- 2024-12-20Excel数据导出实战:新手必学的简单教程
- 2024-12-20RBAC的权限实战:新手入门教程
- 2024-12-20Svg Sprite Icon实战:从入门到上手的全面指南
- 2024-12-20LCD1602显示模块详解