关于线程、锁和CPU调度的问题
来源:5-10 公平锁

Supers1st
2021-11-11
假设有五个线程等待CPU的调度,五个线程需要去争夺一把互斥锁,假设被线程1拿到了,则线程2、3、4、5都处于Blocked状态,但是由于线程1运行比较耗时,在一个时间片中没有运行完,线程1应该就会失去cpu的调度,进入阻塞状态,此时线程1会释放锁吗?如果不释放锁,当cpu重新调度时,是否只能执行线程1?即只有当线程1运行完毕且释放锁之后其他线程才可能拿到锁,得到cpu的执行权。拿到锁的那个线程会独得cpu恩宠,直到运行完毕,不管她占用了多少的时间片。
写回答
1回答
-
悟空
2021-11-11
失去cpu的调度,进入阻塞状态,此时线程1不会释放锁,当线程1运行完毕且释放锁之后其他线程才可能拿到锁,得到cpu的执行权。阻塞时,不会浪费CPU。
022022-12-21
相似问题