首页 > 试题广场 >

有关线程的哪些叙述是对的

[不定项选择题]

有关线程的哪些叙述是对的

  • 一旦一个线程被创建,它就立即开始运行。
  • 一个线程可能因为不同的原因停止并进入就绪状态。
  • 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。
  • 使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。
一个新创建的线程并不是自动的开始运行的,必须调用它的start()方法使之将线程放入可运行态(runnable state)
发表于 2018-08-02 16:45:56 回复(0)
C选项错误是,因为抢先机制而停止运行,说明该线程的优先级比较低,不可能排到可运行队列的前面。
发表于 2018-09-20 09:42:00 回复(0)
A、进程被创建首先进入就绪队列,之后根据调度算法进行运行
C、进程被抢占,其在队列的队首还是队尾位置取决于具体的调度算法;例如最短剩余时间调度算法,采用的是抢占,每次执行的是就绪队列中剩余执行时间最短的进程,那么被抢占的不一定就是在队列头部,但是这种调度算***产生饥饿。
编辑于 2019-08-11 22:07:51 回复(0)
本题答案应该是B、D
B选项中有可能是时间片用完进入就绪状态,有可能是被优先级高的线程抢占而进入就绪状态!
发表于 2018-09-19 14:57:29 回复(0)
C选项:
假如是可抢占的系统,那么当前运行的线程一定是优先级最高的。
假如优先级更高的线程到来,被抢占的线程会被放在可运行(就绪态,不是正在运行)的最前面,没有毛病吧?
发表于 2019-07-03 23:59:22 回复(0)
D为什么是对的??
start方法不是调start0的native方法,然后调c的方法,在c里面调用操作系统的p_thread_create()方法来创建线程吗,什么叫使一个线程成为可运行的
发表于 2021-04-16 14:55:51 回复(0)
当一个线程因为抢先机制而停止运行,优先级低
发表于 2019-09-03 21:56:09 回复(0)

Bd

发表于 2018-10-09 15:51:30 回复(0)
1. 首先分析选项A: - 一个线程被创建后,需要调用 start() 方法才会进入就绪状态,等待CPU分配时间片后才开始运行,而不是立即开始运行,所以A错误。 2. 接着看选项B: - 一个线程可能因为时间片用完、被更高优先级的线程抢占等不同原因停止运行并进入就绪状态,等待下一次分配时间片,所以B正确。 3. 再看选项C: - 当一个线程因为抢先机制而停止运行,它会被放在可运行队列的后面,而不是前面,所以C错误。 4. 最后看选项D: - 使用 start() 方法可以使一个线程进入就绪状态,成为可运行的,但它不一定立即开始运行,要等待CPU分配时间片,所以D正确。 答案是BD。
发表于 2024-10-24 14:48:22 回复(0)
D选项是因为调用start()方法之后还需要获取资源和CPU吗
发表于 2019-06-04 10:06:52 回复(1)
即使是因为抢先而停止也不一定就进入可运行队列的前面,因为同级线程是轮换式的,而它因抢占而停止后只能在轮换队列中排队。
发表于 2019-05-28 22:01:05 回复(0)
BD
发表于 2019-04-26 19:07:33 回复(0)
B
发表于 2018-10-18 14:57:57 回复(0)