Java进程和线程

2019-04-06  本文已影响0人  Andy丫
  1. 定义

进程
是指一个内存中运行中的应用程序,进程是系统进行资源分配的最小单位。

线程
进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。

  1. 关系
    一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.
    一个进程至少包含一个线程。
    Java程序的进程里至少包含主线程和垃圾回收线程(后台线程)

  2. 进程与线程的区别
    进程有独立的内存空间,进程中的数据存放空间(堆空间和栈空间)是独立的。

    线程堆空间是共享的,栈空间是独立的,线程消耗的资源也比进程小,相互之
    间是可以影响的。

    相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其
    他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。

  3. 线程调度
    计算机通常只有一个CPU时,在任意时刻只能执行一条计算机指令,每个线程只有获得CPU的使用权才能执行指令
    所谓多线程并发运行,从宏观看,其实各个线程轮流获得CPU的使用权,分别执行各自的任务。那么,在可运行池中,会有多个线程处于就绪状态等到CPU,JVM就负责了线程的调度,
    JVM采用的时抢占式调度,因此可能造成多线程执行结果的随机性

  4. Java线程的状态

   Thread thread = new Thread();
上一篇 下一篇

猜你喜欢

热点阅读