码迷,mamicode.com
首页 > 编程语言 > 详细

Java并发编程(二)为什么需要多线程

时间:2017-11-27 19:57:26      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:学习   计算机   画圆   进入   加载   时间   单线程   图片   高效   

 

如果不考虑多线程的话,那么在程序只有一条执行路径,代码串行执行:顺序执行、选择或者循环。单线程就像你用你惯常的手去写字,多线程编程就要求你左手画圆,右手画方。一不留神就会手忙脚乱,圆不是圆,方也不像方。在继续学习多线程编程之前,先来小小的回顾一下操作系统的进化史。

 

手工操作:计算机并不包含操作系统,从头到尾只执行一个程序,这个程序可以访问程序中所有的资源。

技术分享图片

 

批处理系统:加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理一个或多个用户的作业(这作业包括程序、数据和命令)。

技术分享图片

 

多道程序设计技术: 所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行。即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种硬、软件资源。当一道程序因I/O请求而暂停运行时,CPU便立即转去运行另一道程序。

技术分享图片

 

分时系统: 由于CPU速度不断提高和采用分时技术,一台计算机可同时连接多个用户终端,而每个用户可在自己的终端上联机使用计算机,好象自己独占机器一样。

 

技术分享图片

 

从操作系统的发展可以看出来,从单任务到多任务,从多道处理到分时处理,计算机的资源利用率和并发性越来越高了。

在早期的分时系统中,每个进程相当于一台虚拟的冯·诺依曼计算机,它拥有存储指令和数据的内存空间,根据机器语言的语义以串行的方式执行指令,并通过一组I/O指令与外部设备通信。

这个时候如果把一个进程当做虚拟机,那么这个进程中的线程就相当于虚拟机中的进程啦。

 

串行编程的好处在于直观和简单,不容易出岔子,缺点是如果某些步骤处理时间过长需要无谓的等待;

异步处理的好处是:高效,充分利用资源,缺点各个步骤之间需要协调一致,不然容易乱套。

Java并发编程(二)为什么需要多线程

标签:学习   计算机   画圆   进入   加载   时间   单线程   图片   高效   

原文地址:http://www.cnblogs.com/tuhooo/p/7905453.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!