我正在阅读有关非抢占线程的信息,并找到了普林斯顿大学的一张幻灯片,它显示了下图:(来源链接:http://www.cs.princeton.edu/courses/archive/fall11/cos318/lectures/L5_ThreadsImplementation。 .pdf )
据我了解,要执行的线程首先放入就绪队列。当它从队列中弹出时,它处于运行状态。如果它想调用另一个线程,它会调用yield函数,该函数将存储线程的当前状态并将其插入队列的尾部。队列前面的线程将被执行。
如果线程被阻塞(即它正在等待某些资源)会发生什么?我认为在非抢占线程中它会等待资源然后继续执行。
但是从下图中它看起来好像进入了阻塞状态,然后被放入了就绪队列?这是为什么?