1.进程
每个独立进行的程序称为进程,即“正在进行的程序”,进程都有自己独立的内存空间,如果某个进程去访问其他进程的内存空间,则有可能是病毒来的,操作系统的多任务其实是cpu以非常小的时间间隔交替执行多个程序,给人同时进行多个程序的感觉。
2.线程
1.线程是轻量级的进程。
2.线程没有独立的内存空间。
3.线程是由进程产生,寄生于进程。
4.一个进程可以有多个线程(就是我们所说的多线程编程)
3.线程的状态
1.新建状态(new):新创建了一个线程对象。
2.就绪状态(Runnable):对象创建后,其他线程调用该对象的start( )方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。
3.运行状态(Running):就绪状态的线程获取CPU,执行程序代码
4.阻塞状态(Blocked):线程因为某种原因放弃了CPU的使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。阻塞的情况三种。
a.等待阻塞:运行的线程执行wait( )方法,JVM把该线程放入等待池中
b.同步阻塞:运行的线程在获取对象的同步锁时,如该同步锁被其他线程占用,则JVM把该线程放入锁池中
c.其他阻塞: 运行的线程执行sleep()或join()方法,或者发出了I/O请求时,JVM会把该线程置为阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5.死亡状态(Dead):线程执行完了,或因异常退出run()方法。结束生命周期。
时间: 2024-09-30 14:15:02