C# 基元线程同步构造
注:基元指可以再代码中使用的最简单的构造.
线程基元构造分为两种,用户模式和内核模式.
用户模式分析:
优点:
1、速度比内核模式块,使用特殊cpu指令来协调线程,协调实在硬件级别发生的.
2、在此构造上的线程池线程一旦发生阻塞,并不会创建的新的线程,因为它不会认为自己发生阻塞.。
3、cpu指令只会阻塞线程很短的时间
缺点:
1、只能内核才能停止当前构造的线程池线程.
2、用户模式构造的线程会被系统线程抢占,期间,他会在用户模式中保持运行,导致浪费cpu时间,本可以去做别的时间哪怕是停止也好,停止能省电.
内核模式分析:
优点:内核模式构造的线程在等待别的线程运行资源时,会发生阻塞避免浪费cpu资源,当运行资源可用时会被重新唤起.
缺点:将线程从用户模式切换到内核付出的代价很大.所以避免使用内核模式线程构造.
两种模式对于在一个构造上等待的线程,如果拥有这个构造的线程不释放,在用户模式下,就是活锁,既占用cpu资源又耗费内存.在内核模式下,称为死锁,仅消耗内存.