进程与线程
进程(Process)
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
线程(Thread)
是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
一个进程可以包含多个线程,进程间不共享资源,一个进程中的线程之间可以共享资源。
操作系统线程和Java线程有什么不同?
操作系统线程除了new和terminated,还有:
1.ready:表示线程已经被创建,正在等待系统调度分配CPU使用权。
2.running:表示线程获得了CPU使用权,正在进行运算。
3.waiting:表示线程等待(挂起),让出CPU资源给其他线程使用。
Java线程除了new和terminated,还有:
1.runnable:对应操作系统线程的ready和running。
2.blockd:表示一个阻塞线程在等待锁。
3.waiting:表示一个线程在等待另一个线程执行一个动作时的状态。(join,wait,await,sleep)
4.time waiting:表示一个线程在一个特定的等待时间内等待另一个线程执行一个动作。(设置了超时参数)
Java关于线程的一些方法
1.join:等待一个线程(先start),在该线程执行结束前,当前线程阻塞。(interrupt)
2.wait:让当前线程阻塞并释放锁,等待唤醒。(notify,notifyAll,interrupt)
3.sleep:让当前线程阻塞,但不释放锁。(interrupt)
4.yeild:让位,线程回到ready状态。
5.setPriority:设置线程的优先级,1-10,默认是5。
6.interrupt:发出中断信号
7.isInterrupted:判断中断信号
Tips
需要注意的是:关于等待的方法是为了实现线程的调度,而锁机制是为了实现线程对共享数据的互斥。

浙公网安备 33010602011771号