java线程概述

线程概述

  首先先理解下什么是进程和线程?

进程

  进程是指一个正在运行中的程序。

  每个进程执行都有一个或多个执行顺序,这个顺序就是一个控制单元(或者叫一个执行路径),控制程序的运行。

  举例:

    大家使用过的迅雷下载,当你启动迅雷开始下载后,你可以选择下载单个或者同时下载多个文件。每一个下载任务就是一个控制单元,每一个下载任务也就是线程。也比如QQ,一个QQ就是一个进程,QQ里的语音功能是一个线程,视频聊天是一个进程.......等等等等

线程:

  线程就是进程内部含有的一个或多个顺序执行流,每一个顺序执行流就是一个线程。

  线程是进程的一个实体,线程控制着进程的执行。一个线程可以控制影响另一个进程,同一进程中的多线程可以并发运行。线程可以共享数据给同进程下的线程。

  一个程序至少有一个进程,一个进程至少有一个线程!线程不能独立存在,必须依赖于进程。

 

两者的区别:

  进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉

 

延伸思考:Java的JVM启动是单线程还是多线程?

答案:JVM启动不止一个线程,还有负责垃圾回收机制的线程。

posted @ 2017-07-10 22:46  二一零  阅读(318)  评论(0)    收藏  举报