【复习笔记】被百度问过四次的进程与线程的关系

xiaoxiao2021-02-28  5

进程与线程的关系

线程:系统中进行运算的最小单位,不拥有资源,可以并行执行,一个线程可以启动另一个线程,比进程更轻量。

进程:拥有系统分配的独立资源,每一个进程内可以启动多个线程,每一个进程内的线程可以共享访问此进程内分配的资源。

Java中线程的五种状态

新建状态——当new一个线程的时候,一个线程即处于新建状态(Thread t = new Thread();)。

就绪状态——当一个线程调用start()方法时,一个线程即进入就绪状态,等待CPU调度执行,并不是说调用start方法线程就会立即执行,而是进入就绪状态。

执行状态——当CPU调度一个处于就绪状态的线程时,线程由就绪状态转变为执行状态。

阻塞状态——当线程遇到不得不停止执行的情况时,线程由执行状态进入阻塞状态。java中线程进入阻塞状态的情况大概有以下几种:

1)多个线程访问添加了synchronized关键字的共享数据对象时,若其他线程已经获得锁,则其他线程进入阻塞状态;

2)当在一个线程内调用wait()方法时,线程进入阻塞状态;

3)当线程调用sleep(),join()等方法时,线程进入阻塞状态;

进程间的通信方式

管道——一种半双工通信方式,数据在一定时间内只能单向传输,只支持具有亲缘关系的进程之间使用,这里的亲缘关系主要是指父进程与子进程。

有名管道——也是半双工,类似管道,但取消了亲缘关系这一条限制。

信号量——是一个计数器,用来控制多个进程对共享内存的访问,类似于锁机制,对于共享元素添加互斥机制。

共享内存——不同进程可以共同访问同一块内存区域,来读取其他内存的数据信息。

消息队列——并不知道到底是什么东西,只知道是个装着信息字节的一个链表。

转载请注明原文地址: https://www.6miu.com/read-200330.html

最新回复(0)