ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

1.c++并发概念及入门小例子

2019-09-08 11:01:15  阅读:156  来源: 互联网

标签:多线程 入门 C++ 并发 线程 c++ 执行 CPU


最近在学C++并发,作为一个学习知识追求效率,对所学新概念又力求通俗易懂的我来说,该写点东西来作笔记,以便以后的复习。 作为一名新手,笔记中难免会有错误的地方,希望路过的神仙有错的话请指出错误,我会更正,谢谢。 进入正题。 首先学并发之前要了解什么是并发?什么是并行? 我个人的观点是:并发强调的是单个CPU能够同时处理多个不同的事件的能力(这里所谓的同时是在宏观上的同时,但精确到某一时刻在微观上CPU只执行多个任务中某个任务的一个小切片,然后不断的通过上下文切换实现多任务的交替处理,从而在宏观上让人感觉是同时能够处理多任务的感觉),比如事件A,B,在1s的间隔之间它花0.5s完成执行A的一部分,接着切换一下任务,在接下来的0.5s执行B的一部分,然后在往后的每1s时间间隔内继续重复执行A,B的部分代码及任务的切换,如果没有并发对于要处理的事件CPU只能一件一件的来处理,例如先完成A再完成B;而并行强调的是不同的事件分别通过多个CPU来同时处理,例如事件A,B,事件A在CPU1上执行,事件2在CPU2上执行,它们之间互不干扰,从而达到快速处理的目的。 乍看之下发现并行貌似要比并发好,那为什么还使用并发呢?一个运行中的程序就是一个进程,打开电脑查看一下,发现电脑的运行的进程数目要远大于CPU的核心数,所以要完成各个任务处理器只能通过并发来执行啦。 从C++11开始,C++提供相应的库来支持多线程的开发。 如同c语言要使用printf()函数来打印输出一样,首先要把头文件包含进来。 要编写多线程程序,在C++程序中就要包含库来创建线程。 写程序之前聊聊线程,线程是在进程内构成单独执行流的单位,进程内的每个线程都有单独的栈区域!所有的线程都共享数据区和堆区!!! 下面编写第一个多线程hello world的例子。 创建文件名为hello.cc的文件,输入: #include #include //用于管理线程的函数和类在这个库中 using namespace std; void hello() { cout<<"Hello World!"<

标签:多线程,入门,C++,并发,线程,c++,执行,CPU
来源: https://www.cnblogs.com/ilove-haha/p/11478999.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有