1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Java 多线程(一)并发 并行 线程 多线程 进程

Java 多线程(一)并发 并行 线程 多线程 进程

时间:2020-08-23 00:59:23

相关推荐

Java 多线程(一)并发 并行 线程 多线程 进程

文章目录

一丶并发是什么?二丶线程是什么?三丶多线程是什么?提问与解答:第一,多条线程在CPU中可以同时得到(同一时间)执行吗?第二,CPU是怎么调度多条线程,使得一个进程能够实现并发机制的?第三,线程的调度速度除了硬件,还会受到什么影响?第四,在多核CPU下,同一进程下的多个线程可以并行运行吗四丶并行是什么?五丶进程是什么?提问与解答:第一:单核CPU 是否能同时执行多个进程?第二:多核CPU 是否能同时执行多个进程?

一丶并发是什么?

概念(死板的解释):

在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

举例(推荐看这个):人既可以用电脑边听歌,也可以用电脑边打游戏,这些活动都是可以同时进行的,这种思想放在Java 中被称为并发。

好的那么理解了并发,我们来看一下什么是线程

二丶线程是什么?

概念(你再讲啥 😂):

是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。

简单来说(来来来看这):

并发完成的每一件事情(每一个功能),就被称为线程。

好那么理解了线程,我们再来理解多线程就不难了

三丶多线程是什么?

概念(哎哟头大):

从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理” 。

简单来说(这才是人看的):

程序员可以在程序中执行多个线程,每一个线程完成一个功能,并与其他线程并发执行,这种机制被称为多线程。

好,我相信到了这里,大家一定会有很多疑问,来咱们一起细品技术的伟大,这也是我当时在学习这个地方的时候好奇的问题:

提问与解答:

第一,多条线程在CPU中可以同时得到(同一时间)执行吗?

(单核CPU)同一时间,cpu只能处理1个线程,只有1个线程在执行

第二,CPU是怎么调度多条线程,使得一个进程能够实现并发机制的?

多线程同时执行:是因为CPU快速的在多个线程之间的切换,只要cpu调度线程的时间足够快,就造成了多线程的“同时”执行假象,实际上是因为CPU速度太快导致人类以为都是同一个时间去执行。

第三,线程的调度速度除了硬件,还会受到什么影响?

如果线程数非常多,cpu会在n个线程之间切换,消耗大量的cpu资源,每个线程被调度的次数会降低,线程的执行效率降低

第四,在多核CPU下,同一进程下的多个线程可以并行运行吗

不能,一个进程的线程都是串行(用户态多线程中),不同的进程可以并行(多核处理器中)。在用户态多线程中同一个进程下的多个线程不可以并行运行,不管多少核处理器,它的线程只能交替顺序运行。

好,那么学进程之前,我们要先来看看并行是什么意思

四丶并行是什么?

概念(这里讲的还算听得懂):

在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。对比地,并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。

好,我们一起再坚持一下,讲完 “进程” 就下课

五丶进程是什么?

概念(这也太官方了):

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

简单来说(这够明白了吧):

每个独立执行的程序被称为进程,也就是正在执行的程序。

提问与解答:

第一:单核CPU 是否能同时执行多个进程?

系统会分配给每个进程一段有限的CPU时间片,CPU会根据CPU时间片上对应的时间,在到点时,CPU就会马上执行该进程(该程序),然后又会根据下一个CPU时间片跳到另一个进程中去执行。由于CPU转换较快,所以使得每个进程好像时同时执行。

第二:多核CPU 是否能同时执行多个进程?

根据并行的概念,宏观上是同时执行,微观上仍是顺序执行。说白了就是多核cpu只是效率更高一些,但本质不变!

好下课

纪念一下v1.0:5月20日凌晨4.39分写完。

下一篇:《Java 多线程《II》— 启动线程的三种方式和源码分析》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。