*** 作系统基础(二)进程与线程的区别、进程状态和线程状态

 *** 作系统基础(二)进程与线程的区别、进程状态和线程状态,第1张

*** 作系统基础(二)进程线程的区别、进程状态和线程状态 一、进程与线程的区别

进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。

线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是,同类的多个线程共享进程的堆和方法区资源。

进程是资源分配的最小单位,线程是CPU调度的最小单位。

二、进程状态

进程大致分为 5 种状态

创建状态(new) :进程正在被创建,尚未到就绪状态。就绪状态(ready) :进程已处于准备运行状态,即进程获得了除了处理器之外的一切所需资源,一旦得到处理器资源(处理器分配的时间片)即可运行。运行状态(running) :进程正在处理器上上运行(单核 CPU 下任意时刻只有一个进程处于运行状态)。阻塞状态(waiting) :又称为等待状态,进程正在等待某一事件而暂停运行如等待某资源为可用或等待 IO *** 作完成。即使处理器空闲,该进程也不能运行。结束状态(terminated) :进程正在从系统中消失。可能是进程正常结束或其他原因中断退出运行。 三、线程状态

线程分为6个状态:

初识状态(new):新创建了一个线程对象,但还没有调用start()方法时。

运行状态(runnable):线程调度程序从可运行池中选择一个线程获得CPU时间片后,被选中线程进入的状态。这也是线程进入运行状态的唯一一种方式。

阻塞状态(blocked):阻塞状态是线程阻塞在进入synchronized关键字修饰的方法或代码块(获取锁)时的状态。

等待状态(waiting): 处于这种状态的线程不会被分配CPU执行时间,它们要等待被显式地唤醒,否则会处于无限期等待的状态。

超时等待状态(timed_waiting):处于这种状态的线程不会被分配CPU执行时间,不过无须无限期等待被其他线程显示地唤醒,在达到一定时间后它们会自动唤醒。

终止状态(terminated):当线程的run()方法完成时,或者主线程的main()方法完成时,我们就认为它终止了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5722563.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存