Java多线程(01)进程和线程概念

什么是进程

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。


初看百度百科上面这段文字会显得十分抽象,难以理解。但是我们看一下win系统的任务管理器:

可以看到,在操作系统中运行了很多exe程序,这些就是一个个进程?没错!进程是受操作系统管理的基本运行单元。在Linux系统中,我们运行一个软件也是同样的道理。






什么是线程

线程可以理解成在进程中独立运行的子任务。比如QQ软件运行时,有在线视频聊天、传输文件、发送表情等子任务,这些任务可以同时运行。每一项子任务可以理解为一个线程在工作。


使用多个子任务,也就是多线程的优点,就是最大限度的利用CPU的空闲时间来处理其它任务,比如聊天,打印数据,编辑文档等等可以同时进行。而CPU在这些任务之间不停进行切换,由于切换的非常快,使用者的感受就是这些任务就是在同时运行,相信大家使用win系统深有体会。所以使用多线程技术后,可以在同一时间运行更多不同种类的任务。


下面举个例子,任务A运行需要10秒,任务B运行需要1秒,这两个是完全独立互不影响的任务,如果顺序执行,那么总时长就是11秒,也就是同步执行。但是运行中发现任务A有段时间是一直在等待返回数据的,那么我们可以利用这段时间进行CPU切换,去运行任务B,使B不再等待10秒以后再运行,这样两个任务的总时长就取决于最大任务的时长,也即是10秒,系统的运行效率也得到了提升。这就是要使用多线程技术,要学习多线程的原因。这是多线程技术的优点,使用多线程也就是在使用异步。


注意,因为多线程是异步的,所以写在类里的代码顺序不一定就是执行顺序,线程被调用的时机是随机的。











我们的交流基地,“JAVA互联网技术交流:789650498”欢迎小伙伴们一起来交流:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 文/tangsl(简书作者) 原文链接:http://www.jianshu.com/p/2b993a4b913e...
    西葫芦炒胖子阅读 3,988评论 0 5
  • 1.内存的页面置换算法 (1)最佳置换算法(OPT)(理想置换算法):从主存中移出永远不再需要的页面;如无这样的...
    杰伦哎呦哎呦阅读 3,638评论 1 9
  • 进程和线程 进程 所有运行中的任务通常对应一个进程,当一个程序进入内存运行时,即变成一个进程.进程是处于运行过程中...
    胜浩_ae28阅读 5,295评论 0 23
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,370评论 0 23
  • 学习英语加新媒体商务找号 octopus panda monkey snake chimpanzee horse ...
    水仙姑阅读 159评论 0 0

友情链接更多精彩内容