微信

使用微信服务,更方便

职友集>Java面试题 > 分别解释一下程序,进程和线程的概念和区别?

分别解释一下程序,进程和线程的概念和区别?

2015-10-07 06:30:08 阅读( 53 )

2218人 收藏本页

标签:Java面试题

程序 是计算机指令的集合它,以文件的形式存储在磁盘上。
进程是一个程序在其 自身的地址空间中的一次执行活动。
进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源,而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占系统的运行资源。
线程:进程中的一个单一的连续控制流程。一个进程可以拥有多个线程。
线程又称轻量级进程,它和进程一样拥有独立的执行控制,由操作系统负责调度,区别在于线程没有独立的存储空间,而是和所属进程中的其它线程共享一个存储空间,这使得线程间的通信远较进程简单。
系统会为每个线程分配一个时间片。
在java中每个线程都 有一个优先级。
java运行时系统实现了一个用于调度线程执行的线程调度器,用于确定某一时刻由哪个线程在CPU上运行。
在java中,线程通常是抢占式的而不需要时间片分配进程(分配给每个线程相等的CPU时间的进程),但实际上只有一个线程在运行。该线程一直运行到它终止进入等待状态,或者另一个具有更高优先级的线程变成可运行状态。在后一种情况下,低优先级的线程被高优先级的线程抢占,高优先级的线程获得运行的机会。
java线程调度器支持不同优先级线程的抢占方式,但其本身不支持相同优先级线程的时间片轮换。
java运行时系统所在的操作系统支持时间片的轮换,则线程调度器就支持相同优先级线程的时间片轮换。

来自IT公司面试手册

下一篇:解释一下Java中的流 Stream

上一篇:Swing组件JList的列表数据修改了,如何通知JList改变显示?

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题