进程与线程的理解

第一次认真记录看过的知识,希望能加强理解,也促进自己继续学习。
   **一、  进程、线程的含义**
   几乎所有操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每一个运行的程序就是一个进程(当一个程序进入到内存运行时,就变成了一个进程),当一个程序运行时,内部可以包含多个顺序执行流,每个顺序执行流就是一个线程。
   进程特性:独立性(拥有自己的独立的资源,私有的地址空间,在未经过进程本身的允许,一个用户京城不可访问其他进程的地址空间),动态性(程序是今天的指令集合,进程是系统中正在活动的指令集合,具有生命周期和各种状态),并发性(多个进程可以在一个处理器上并发执行,互补影响)
   并发:同一时刻,在一个处理器上只有一条指令在执行,但多个进程可以快速轮换执行。
   并行:同一时刻,同一时刻(多个进程)在多个处理器上同时执行。
  多线程:线程是进程的执行单元,线程是进程中独立执行流,线程必须有父进程,线程有自己的堆栈,程序计数器和局部变量,但不拥有系统资源,他与父进程的其他线程共享系统资源。线程的执行时抢占式的。同一进程中的线程可以并发执行。

**二、多线程优势:**
      1.线程的并发性高,多个线程共享进程的内存空间,提高运行效率。
      2.线程间通信容易,因为线程共享统一进程的资源。包括:进程的代码段,进程的共有数据。
      3.创建线程简单。
      4.java内置了多线程功能支持。