[单项选择题] 有关线程的哪些叙述是对的 ( ) Ⅰ:一旦一个线程被创建,它就立即开始运行 Ⅱ:使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行 Ⅲ:当一个线程因为抢先机制而停止运行时,它被放在可运行队列的前面 Ⅳ:一个线程可能因为不同的原因停止(cease)并进入就绪状态
A.Ⅱ、Ⅲ
B.Ⅱ、Ⅳ
C.Ⅰ、Ⅱ
D.Ⅲ、Ⅳ
正确答案:B
参考解析:本题是考查对线程概念的掌握。一个新创建的线程并不是自动的开始运行的,必须调用它的start()方法使之将线程放入可运行态(runnable state),这只是意味着该线程可被JVM的线程调度程序调度而不是意味着它可以立即运行。线程的调度是抢先式的,而不是分时间片式的。具有比当前运行线程高优先级的线程可以使当前线程停止运行而进入就绪状态。不同优先级的线程间是抢先式的,而同级线程间是轮换式的。一个线程停止运行可以是因为不同原因,可能是因为更高优先级线程的抢占,也可能是因为调用sleep()方法。而即使是因为抢先而停止也不一定就进入可运行队列的前面,因为同级线程是轮换式的,它的运行可能就是因为轮换,而它因抢占而停止后只能在轮换队列中排队而不能排在前面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)