Java多线程(一)多线程基础之进程、线程、并发、并行。

无论在哪种编程语言中,多线程都是重中之重。所以说掌握多线程并发编程是一个优秀的程序员所必须的一项技能。虽然平时都有封装好的现成的可以使用,但是知识呢要吃到肚子才更安心。下面我们就通过一系列的博文,来系统的介绍下多线程。

首先我们还是得从进程、线程基础知识开始介绍。

什么是进程?

① 进程是系统进行资源分配的最小单位,也是系统进行资源调度的基本执行单元。
② 它是程序的一次执行过程。简单点的说“进程是正在运行的程序的实例”。
③ 每个进程运行在受保护的独立的内存空间内,进程和进程之间互不干扰。

什么是线程?

① 线程是CPU调度的最小单位,是进程中的一个实体。
② 每一个应用程序在启动之后,都会默认开启一条主线程,除了主线程,其他的线程都是子线程。
③ 一个线程可以创建和撤销另一个线程。(线程的生命周期放在下一篇博文里面。)

进程、线程区别是什么?

① 进程和线程都是程序运行的基本单元,一个程序至少有一个进程,一个进程至少有一个线程。
② 线程的划分尺度小于进程,使得多线程程序的并发性高。
③ 同一个进程中的多个线程之间可以并发执行,线程共享内存,从而极大地提高了程序的运行效率。

关于并发、并行的区别

并发
简单的来说就是指一个时间段内,多个任务同时处于运行活跃状态,而不是在同一时刻运行多个任务。那问题来了,为什么我们感觉像是多个任务同时执行的呢?这是因为每个线程都被分了一个时间段,叫做时间片。因为CPU处理速度很快,所以看上去就是多个任务在同时执行,实际上就只有一个任务在执行。

并行
并行相对来说能简单些,指若干个程序段同时在系统中运行,这些程序的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,无论从微观还是宏观,程序都是一起执行的。

举个例子
在幼儿园呢有很多小宝宝对吧,现在有个小宝宝(程序或者线程)不开心,哭了。其他小宝宝受到这个小宝宝情绪感染,陆续开始哭,这时你(CPU)要快速把一个小玩具递给一个正在哭的小宝宝,他有了小玩具就不哭了。理论上只要你够快(CPU执行速度),谁哭就把这个小玩具送给谁,就没有小宝宝哭了,这就是并发。并行就是多了几个幼师,每个幼师都送给各自宝宝一个玩具,每个宝宝现在都有玩具了,这就是并行。

写完喽!ㄟ(▔,▔)ㄏㄟ(▔,▔)ㄏㄟ(▔,▔)ㄏ


知识重在总结和梳理,只有不断地去学习并运用,才能化为自己的东西。当你能为别人讲明白的时候,说明自己已经掌握了。

欢迎转载,转载请注明出处!

如果有错误的地方,或者有您的见解,还请不啬赐教!

喜欢的话,麻烦点个赞!

Java中的多线程(三)关于多线程管理的相关函数说明
Java中的多线程(二)线程的创建及线程的生命周期

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,190评论 0 23
  • 前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要...
    嘟爷MD阅读 7,340评论 21 272
  • 一、进程和线程 进程 进程就是一个执行中的程序实例,每个进程都有自己独立的一块内存空间,一个进程中可以有多个线程。...
    阿敏其人阅读 2,626评论 0 13
  • 线程概述 线程与进程 进程  每个运行中的任务(通常是程序)就是一个进程。当一个程序进入内存运行时,即变成了一个进...
    闽越布衣阅读 1,026评论 1 7
  • 我是如何的人,我暫時不去下定義,或許這個“暫時”是一直,抑或較長時間。 因為“限制”的別名叫“定義”。 我不去定義...
    LeeKing阅读 242评论 0 1