您的位置:首页 > 编程语言

高并发编程-01-并发编程的发展历史

2018-01-11 15:43 330 查看
其实,在早期计算机并没有包含操作系统,这个时候,这个计算机只跑一个程序,这个程序独享计算机的所有资源,这个时候不存在什么并发问题,但是对计算机的资源来说,确实是一种浪费。于是,操作系统出现了,操作系统改变了这种现状,让计算机可以运行多个程序,并且不同的程序占用独立的计算机资源,如内存,CPU等。操作系统的出现,主要有以下几点原因:
1,资源利用率:可以在其他程序执行过程出现等待的时候,去执行其他程序,从而提高程序
的利用率。什么时候会出现等待,比如输入操作或输出操作。
2,公平性:所有的程序可以共享计算机资源,一种有效的方式是通过时间片的方式来让程序共享计算机资源。
3,在编写多任务程序时,可以一个程序执行一个任务,必要时,程序之间进行通信即可。当计算机从单程序变成多程序之后,这个时候又发展出了多线程,线程是进程里面的每个执行控制流,或叫执行路线。如果没有明确的协同机制,那么每个线程将独立运行,共享着进程的内存及CPU资源等等。多线程的运行模式,给我们带来了什么好处?
发挥现代CPU的特性,提高吞吐率早期大家应该听说过摩尔定律,但随着CPU通过提高时钟频率来提升性能已变得越来越困难,处理器的产商,比如因特尔,AMD,都开始在单个芯片上放置多个处理器核,所以我们现在的个人计算机基本都是这种架构。现代计算机的调度单位是线程,所以假设你的电脑是一个4核处理器,当你的程序只有一个线程在运行的时候,那这个时候就会有75%的CPU资源无法使用,这简直是一种浪费。
使用多线程就是为了让系统有更高的吞吐率。比如当程序等待某个同步IO完成操作时,这个时候,CPU处理器处于空闲状态,如果程序是单线程的,那么只能等待,再进行下一步操作,反之,就可以并发进行。举个生活的例子,老婆让我洗碗,我又想看NBA,那怎么办,很简单,我可以一边洗碗,一边看NBA,而不用等到洗完碗,再去看NBA总结下,发展的历程单进程计算机------->多进程的计算机(操作系统)------>多线程的计算机(提高CPU的利用率,简化开发模式)生活中的案例,我们接触的软件,都有多线程的影子,大家不妨可以想想都有哪些?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息