阻塞和忙等待

【区别】

1.阻塞不会占用CPU,忙等待会占用CPU。但忙等待也不是零成本,每个线程会占用1M内存。而且会给CLR和操作系统带来管理开销

2.忙等待可以避免上下文的切换

 

 

【阻塞/忙等待/睡眠/挂起】

阻塞是线程自己发现获取不到资源,先休息,有资源再来。不占用CPU

忙等待是线程一直等待资源。占用CPU 。

睡眠是CPU通知线程去休息,一定时间再来。不占用CPU

挂起是CPU通知线程休息,有资源CPU通知线程。不占用CPU

 

【tip】

当处理成百上千个IO-Bound的时候,阻塞不适用,因为开辟的线程多,内存占用太大,一般使用回调

posted @ 2022-10-21 20:05  RookieCoderAdu  阅读(497)  评论(0)    收藏  举报