Java 杂谈程序员Java多线程

Java这些多线程基础知识你会吗?

2018-12-17  本文已影响25人  Wizey

0、并发和并行、进程核线程、多进程和多线程的区别:

(这里的时间和时刻上的概念同物理上的一样)

并发:在一段时间内多个任务同时执行,或者说是在一段很短的时间内可以执行多条程序指令,微观上看起来好像是可以同时运行多个进程,单核处理器就可以做到。

并行:在同一时刻多个任务同时执行,或者说是在同一时刻可以执行多条程序指令,多核处理器才可以做到。

进程:进程是程序的一次执行过程,是系统运行程序的基本单位,打开 Windows 的任务管理器就可以看到很多进程。

线程:线程与进程相似,但线程是一个比进程更小的执行单位,一个进程在其执行的过程中可能产生多个线程。

多进程:每个进程都拥有自己独立的资源,多个进程可在单核处理器上并发执行,在多核处理器上并行执行。

多线程:一个进程可由多个线程组成,多个线程共享进程内资源,多个线程可在单核处理器上并发执行,在多核处理器并行执行。

在多核处理器上,并发和并行同时存在,处理器上的每个核同一时刻同时执行多个任务,每个核在很短的时间段内又同时执行多个任务,对多任务粗略划分是多个进程,对进程划分可能又是多个线程。同一时刻,处理器的每个核只能运行一个进程中的一个线程中的一条指令(Intel 的超线程技术,如双核四线程,四核八线程,处理器的线程(硬件上)和进程中的线程(软件上)不是一个概念,这个所谓的超线程技术也并不能达到真正的多核,只是尽可能的提高处理器的吞吐量核利用率)。

线程比进程更加的轻量级,进程和线程都是提高程序并发性和系统性能的手段,但并不是说进程越多或线程越多,性能越高,还要结合硬件设备和操作系统来看。

1、创建线程的三种方式:

image

(扫一扫即可查看测试代码)

2、三种方式的优劣:

image

3、线程的六种状态:

Thread.State 枚举类中的定义

image

4、线程的生命周期:

image

5、线程的分类:

1、普通线程:前台线程

2、守护线程

后台线程,运行在后台为其他线程提供服务,如果所有的前台线程都死亡,后台线程也自动死亡。当整个虚拟机中只剩下后台线程,虚拟机也没有继续运行的必要了,虚拟机也就退出了。

应用:JVM 虚拟机启动后的后台检测线程,数据库连接池中的检测线程。

最常见的守护线程:虚拟机中的垃圾回收线程,可以通过 jconsole,jvisualvm 等工具查看。

6、线程中的常用方法说明:

上一篇 下一篇

猜你喜欢

热点阅读