当线程 A 在等待一个同步构造,另一个线程 B 持有构造一直不释放,那么就会导致线程 A 阻塞。同步构造有用户模式构造和内核模式构造。
用户模式构造通过 CPU 指令来协调线程,所以速度很快。也意味着不受操作系统控制,所以等待构造的线程会不停自旋,浪费 CPU 时间。
内核模式构造通过操作系统来协调线程。内核构造在获取时,需要先转换成本机代码,在转换成内核代码,返回时则需要反方向再转换一次,所以速度会比用户构造慢很多。
因为使用了操作系统来协调线程,所以也有了更加强大的功能。
不同线程在竞争一个资源时,操作系统会阻塞线程,所以不会自旋。
可以实现托管线程和本机线程的同步。
可以跨进程跨 domain 同步。
可以利用 WaitHandle 类的方法实现多个构造的同步或者超时机制。
© 版权声明
本站资源都来源网络搜集发布。
若有侵权或者违规内容,请联系站长删除。
资源仅供本地交流学习,请勿商用,如违反,和本资源网无关,使用者承担一切责任
若有侵权或者违规内容,请联系站长删除。
资源仅供本地交流学习,请勿商用,如违反,和本资源网无关,使用者承担一切责任
THE END
请登录后发表评论
注册