看完上篇博文的介绍后,大家应该大概了解进程和线程的由来。有了这样一个背景我们进一步来看一下线程和进程。

引入进程:

进程能够提高系统的并发性。提高CPU的使用率,从而提高程序的性能。在曾经单道操作系统中,一次仅仅运行一个程序,这样运行效率非常低,资源得不到充分的利用。

所以后来多道操作系统出现了,因为多道操作系统一次并发运行非常多程序,但管理起来非常麻烦。

因此进程的概念就被提出来了,它是一个程序动态运行表现,并且进程中包括了程序的资源,并管理程序怎样去使用资源。能够说进程是程序的一种动态表现形式。

引入线程:

进程与进程之间的通信是十分慢的,由于进程管理分配非常多资源。所以转换起来非常慢。

就这样,线程产生了,它是比进程更小的单位,一个进程中仅仅要有一个或多个线程,那么每一个线程之间的通信相对进程而言则快了非常多。由于线程仅仅涉及到CPU的资源分配。

一个进程中的线程是能够相互通信的,但不同进程之间的线程是不能相互通信的。

进程

是并发运行的程序在运行过程中分配和管理资源的基本单位,是一个动态概念。竞争计算机系统资源的基本单位。进程至少有5中基本状态:初始态。运行态,等待状态,就绪状态,终止状态。

线程

线程是进程的一部分,一个没有线程的进程能够看做是单线程的。

线程有时又被称为轻权进程或者是轻量级进程,也是CPU调度的一个基本单位。

多线程

它同意在程序中并发运行多个指令流,每一个指令流都称为一个线程。多线程进制下的线程彼此间互相独立,比較easy共享数据,通过兵法运行的方式来提高程序的效率和性能。

线程VS进程

1、线程的划分尺度小于进程,线程隶属于某个进程。

2、进程是程序的一种动态形式,是CPU、内存等资源占用的基本单位。而线程是不能独立的占有这些资源的。

3、进程之间相互独立,通信比較困难,而线程之间共享一块内存区域,通信比較方便。

4、进程在运行过程中,包括比較固定的入口、运行顺序和出口。而线程的这些过程会被应用程序所控制。

最新文章

  1. 详解树莓派Model B+控制蜂鸣器演奏乐曲
  2. JavaScript排序算法——插入排序
  3. stage simulator
  4. [前端插件]Bootstrap Table服务器分页与在线编辑应用总结
  5. Android Studio安装后第一次进不去
  6. IPointCollection转IPolyline
  7. 史上最全的iOS各种设备信息获取总结
  8. 【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack
  9. 鼠标点击变色 lvha
  10. C#时间日期操作
  11. Python常用数据结构之collections模块
  12. [BZOJ]2458: [BeiJing2011]最小三角形
  13. vs2013下配置opencv1.0.0
  14. 8款基于Jquery的WEB前端动画特效
  15. PHP设计模式之观察者模式(转)
  16. 广告狂人第一至七季/全集Mad Men迅雷下载
  17. Quartz.NET开源作业调度框架系列(四):Plugin Job-转
  18. C++中的关键字用法---typename
  19. 恶补java基础 位运算符
  20. 第三百零八节,Django框架,models.py模块,数据库操作——链表结构,一对多、一对一、多对多

热门文章

  1. Ubuntu命令行快捷启动Pycharm
  2. malloc()和free()的原理及实现
  3. Unity multiplayer
  4. json的键为变量而不是字符串时,怎么写?
  5. 8. java操作mongodb——查询数据
  6. html 笔记2
  7. 2.cocos设置背景图片
  8. 初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
  9. oracle 高水位线问题
  10. Ftp的上传和下载