汪Sir
2017-08-12 12:31
采纳率: 50%
浏览 2.5k
已采纳

java中被抢占cpu资源,的线程处于什么状态?

最近看到多线程这一章节,有时遇到多线程交互执行,一个线程被另外一个线程抢占了cpu资源,那么这个线程被进去阻塞状态,再转入就绪状态。还是一直处于运行状态呢?求解答!

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 鼠小 2017-08-13 01:49
    已采纳

    首先,,线程只要活着,,就三种状态,就绪,阻塞,运行

    运行,,cpu同一时间只能运行一个线程,,所以不可能是运行
    阻塞,,被强占资源会首先变为阻塞状态(如果了解操作系统的话,会有个阻塞队列的概念,排队等待进入运行状态)
    就绪。。阻塞队列拍完了,会自动进入就绪状态(还有个就绪队列的概念,)
    注意:这里说的队列,并非先进先出的队列,只是一种叫法,,,排序是由规则的(例如,短作业优先,优先级优先,先来先服务才和数据结构中的队列类似)

    图片说明
    此图出自,操作系统课间,

    纯手码,,,对你有帮助,,请给个采纳。。。。。。。。。。。^.^

    打赏 评论
  • lichenxu95 2020-12-26 18:44

    没玩过java,在操作系统中:只有任务获取IPC对象(获取信号量、互斥锁、邮箱、消息队列等未及时获得)、调用delay延时,才会进入阻塞态,所以该任务被抢占后仍然处于就绪态,且被挂进就绪任务链表,等待被调度。

    2 打赏 评论
  • kbc_kbc 2017-08-13 00:53

    阻塞状态啊,同一时间只能执行一个线程

    打赏 评论
  • meRcy94 2017-08-13 05:01

    时间片用完会进入就绪态,资源被占用会进入阻塞态。

    打赏 评论

相关推荐 更多相似问题