java线程概述
线程概述
首先先理解下什么是进程和线程?
进程:
进程是指一个正在运行中的程序。
每个进程执行都有一个或多个执行顺序,这个顺序就是一个控制单元(或者叫一个执行路径),控制程序的运行。
举例:
大家使用过的迅雷下载,当你启动迅雷开始下载后,你可以选择下载单个或者同时下载多个文件。每一个下载任务就是一个控制单元,每一个下载任务也就是线程。也比如QQ,一个QQ就是一个进程,QQ里的语音功能是一个线程,视频聊天是一个进程.......等等等等
线程:
线程就是进程内部含有的一个或多个顺序执行流,每一个顺序执行流就是一个线程。
线程是进程的一个实体,线程控制着进程的执行。一个线程可以控制影响另一个进程,同一进程中的多线程可以并发运行。线程可以共享数据给同进程下的线程。
一个程序至少有一个进程,一个进程至少有一个线程!线程不能独立存在,必须依赖于进程。
两者的区别:
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉
延伸思考:Java的JVM启动是单线程还是多线程?
答案:JVM启动不止一个线程,还有负责垃圾回收机制的线程。

浙公网安备 33010602011771号