栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

小龙:c++多线程编程一(基本概念)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小龙:c++多线程编程一(基本概念)

1、并发

        两个或者更多的任务(独立的任务)同时发生;一个程序同时执行多个独立的任务。

        以往的计算机,单核cpu(中央处理器),某一时刻只能执行一个任务;由操作系统调度(分配时间片),每秒钟进行多次所谓的“任务切换”(上下文切换,需要保存数据),有时间开销,这是一种并发假象。

        随着硬件发展,出现了多处理器计算机,用于服务器和高性能计算领域。

        在一块芯片上有多核(多个)cpu:双核、四核、八核......能够实现真正的并行执行多个任务(硬件并发)。

2、进程

        一个可执行程序执行,就是开启了一个进程。

3、线程

        每个进程,都有一个主线程,这个主线程是唯一的,一个进程只能有一个主线程。当执行可执行文件时,这个主线程随着这个进程默默的启动起来了。主线程寿命跟随主进程,主线程用来执行main函数。

        线程就是用来执行代码的,一条代码的执行通路。除了主线程外,我们可以通过代码来创建其他线程。每创建一个新线程,就可以在同一时刻。多干一个不同的事,运行效率高。

        线程不是越多越好,每个线程都需要独立的堆栈空间,占据内存。线程之间的切换,要保存很多中间状态,耗费本该程序运行时间。建议不超过200-300个,根据项目实际情况。

4、并发的实现方式

        多个进程实现并发。

        进程间通讯:同一台电脑上:管道、文件、消息队列、共享内存。不在同一台电脑:socket通信技术。

        一个进程,多个线程并发。

        一个进程中的所有线程共享地址空间(共享内存)。线程间通讯:全局变量、全局指针、全局引用。存在数据一致性问题。

        多个进程,多个线程并发

建议:优先考虑多线程技术手段

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297308.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号