进程与线程

先引入三个比如: cpu---公司

进程---办公室

         线程---程序员(我们)

         全局变量,内存等资源---公司提供的电脑,桌子等

进程:  操作系统分配程序执行资源的单位

线程:进程的一个实体,是CPU调度和分配的单位。

  理解: 进程一旦建立,便有了一个主线程与主进程,还包括线程可能用到的内存,硬盘等资源,也就是是说,进程=线程+资源,就好比一个办公室=程序员+电脑 , 电脑这些资源由公司负责分配,而真正使用这些资源的是我们程序员.

多进程与多线程

  为了更大的提高公司的业绩,自然会想到扩大公司规模,再开办公室(相当于开多个进程),或者只有一个办公室的情况下,再招更多人的程序员(相当于开更多的线程)

  这两种都可以,但是毫无疑问,再开一间办公室会消耗更多的财力,对操作系统来说,再开一个进程,相当于克隆一个原来的进程,开辟一条缓存区,保存主线程的信息,这都需要消耗时间,当需要的子进程更多,当然就不合适了;再就是多招一些员工,继续在这个办公室工作,相当于在原来的进程中再开一些子线程,这样也可以实现多任务,所以多线程比多进程有更高的并发性,但有问题是,这个办公室的电脑等资源有限,会出现资源的争夺,即在共享全局变量的时候会出现安全性问题,  在多进程中,各自用各自的资源,虽然资源一样,但是不共享

并行与并发

并行:当任务数小于或者等于cpu核数时,每一个任务都有对应的cpu来处理执行,即任务真的是一起执行的

并发: 指的是任务数多于cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)

如果你和我有共同爱好,我们可以加个好友一起交流!

最新文章

  1. MongoDB-常见问题
  2. JavaOO面向对象中的注意点(二)
  3. 2014 Hangjs 见闻流水账第二天
  4. 剑指架构师系列-Hibernate需要掌握的Annotation
  5. ORACLE CUP相关
  6. 更改SQL数据库的繁体数据为简体
  7. ListCtrl控件的使用
  8. PowerShell3.0中,所有的命令
  9. cisco asa5520 IOS故障恢复
  10. EFI/GPT探索(为何win7分区时创建100M隐藏分区)
  11. HDU1686:Oulipo
  12. pxe+kickstart cobbler无人值守装机
  13. firemonkey EDit 改变颜色
  14. LeetCode第十五题-找出数组中三数和为0的答案
  15. spring @Configuration的使用
  16. c# 以换行(\r\n)拆分字符串
  17. eclipse连接VisualSVN Server
  18. 第五节 HTML&CSS -- 关于浮动和清除浮动的解说,以及两个大坑不要踩
  19. C++课程小结 继承与派生
  20. unrecognized selector sent to class

热门文章

  1. zookeeper 集群相关配置实践
  2. 洛谷 P3868 [TJOI2009]猜数字
  3. 200行代码实现Mini ASP.NET Core
  4. 构建之法——homework4
  5. 12.Django基础十之Form和ModelForm组件
  6. 讨论c/c++计算小数的精度问题
  7. JQuery .width()/.css("width")方法 比较
  8. 〈四〉ElasticSearch的认识:基础原理的补充
  9. Java 网络爬虫,就是这么的简单
  10. MongoDB 学习笔记之 地理空间索引入门