C# 基元线程同步构造

注:基元指可以再代码中使用的最简单的构造.

线程基元构造分为两种,用户模式和内核模式.

用户模式分析:

优点:

1、速度比内核模式块,使用特殊cpu指令来协调线程,协调实在硬件级别发生的.

2、在此构造上的线程池线程一旦发生阻塞,并不会创建的新的线程,因为它不会认为自己发生阻塞.。

3、cpu指令只会阻塞线程很短的时间

缺点:

1、只能内核才能停止当前构造的线程池线程.

2、用户模式构造的线程会被系统线程抢占,期间,他会在用户模式中保持运行,导致浪费cpu时间,本可以去做别的时间哪怕是停止也好,停止能省电.

内核模式分析:

优点:内核模式构造的线程在等待别的线程运行资源时,会发生阻塞避免浪费cpu资源,当运行资源可用时会被重新唤起.

缺点:将线程从用户模式切换到内核付出的代价很大.所以避免使用内核模式线程构造.

两种模式对于在一个构造上等待的线程,如果拥有这个构造的线程不释放,在用户模式下,就是活锁,既占用cpu资源又耗费内存.在内核模式下,称为死锁,仅消耗内存.

原文地址:https://www.cnblogs.com/GreenLeaves/p/15525214.html