2019.7.23 多线程基础
进程与线程的简单理解
一、进程
进程是操作系统管理的基本运行单元,是程序及其数据在机器上一次顺序执行所发生的的活动,是程序在一个数据集合上运行的过程,是系统进行资源和调度的独立单位。进程可以简单地理解为“Windows 任务管理器”中的每个exe文件
二、线程
线程可以理解为进程中独立运行的子任务。一个进程可以包含多个线程,但每个线程都是可以独立运行的。比如,我们熟悉的QQ.exe运行时就会有很多的线程一起运行(视频的同时还可以别人聊天)。虽然每个线程可以都可以独立运行,但是也不是说一个进程有多少个线程他们就可以运行多少个线程,因为系统分给进程的资源是有限的。比如,在一个两室一卫的房子里住了两个人,在某天他们同时肚子疼,那只有先进去的可以先解决,另一个人只能等着了。
在Java中有两种线程,一种是用户线程,另一种是守护线程。守护线程是一种特殊的线程,当进程中不存在非守护线程了,则守护线程自动销毁。典型的守护线程就是垃圾回收线程。通俗来讲:任何一个守护线程都是整个JVM中所有非守护线程的“守护者”,只要当前JVM中存在非守护线程,守护线程就一直在,只有当最后一个非守护线程结束了,守护线程才随着JVM一同结束工作。守护线程最典型的应用就是GC(垃圾回收器)。
// 设置为守护线程。默认情况下为用户线程。
Thread.setDaemon(true);
我看的书是由高洪岩老师写的,内容参考于《Java多线程核心技术》