为什么要引进多线程?
2015-07-29 21:22
267 查看
进程也可以完成任务,为什么要在一个进程中再有一类进程(也就是迷你进程,称为线程)?
有很多原因,其中主要原因是进一步提高系统的并发性。在许多应用中同时发生着多种活动,某些活动随着时间的推移会被阻塞。通过将这些应用程序分解成可并行运行的多个顺序程序,程序设计会变得更简单。
下面列出几个促使多线程产生的主要原因:
1)线程是并行实体,共享同一个地址空间和所有数据的能力,这是多进程模型没有的;
2)线程比进程更轻量级,比进程更容易(更快)创建和撤销,在有大量线程需要改动和快速修改时,这一特性是十分重要的;
3)若多个线程都是CPU密集型的,多线程那么并不能获得性能上的增强,但是如果存在着大量的计算和大量的I/O处理,拥有多个线程允许这些活动彼此重叠进行从而会加快应用程序执行的速度;
4)多线程系统使得真正的并行有了实现的可能,提高了CPU利用率。
有很多原因,其中主要原因是进一步提高系统的并发性。在许多应用中同时发生着多种活动,某些活动随着时间的推移会被阻塞。通过将这些应用程序分解成可并行运行的多个顺序程序,程序设计会变得更简单。
下面列出几个促使多线程产生的主要原因:
1)线程是并行实体,共享同一个地址空间和所有数据的能力,这是多进程模型没有的;
2)线程比进程更轻量级,比进程更容易(更快)创建和撤销,在有大量线程需要改动和快速修改时,这一特性是十分重要的;
3)若多个线程都是CPU密集型的,多线程那么并不能获得性能上的增强,但是如果存在着大量的计算和大量的I/O处理,拥有多个线程允许这些活动彼此重叠进行从而会加快应用程序执行的速度;
4)多线程系统使得真正的并行有了实现的可能,提高了CPU利用率。
相关文章推荐
- hdoj 1856 More is better(并查集)
- 建造者模式
- android 杂记 3
- ubuntu 运行级别initlevel
- hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比
- MFC将窗口最小化到托盘
- HDUOj BUS Fair 题目3420
- ROS学习--(十)roslaunch
- hdoj1272小希的迷宫(并查集)
- 国内镜像地址
- 腾讯面试题总结,似乎是面试C++方向的(小巫总结)
- OC实现的IOS赫夫曼编码计算器(选取照片形式)
- http://ourjs.com/detail/532bc9f36922aa7e1d000001
- android沉浸式状态栏实现
- 掷骰子,求得每个数的概率
- 解析如何在C语言中调用shell命令的实现方法【转】
- Remove Duplicates from Sorted List II 解答(有个比较特殊的case leetcode OJ没有覆盖)
- 视频编码标准汇总及比较
- RIP/EIGRP/BGP/OSPF防环机制
- Snail—UI学习之提醒框UIAlertView