- 托管线程的启动
new Thread(ThreadProc).Start();
ThreadProc 是一个空参空返回值的委托(public delegate void ThreadStart();)
- 线程本地存储(ThreadLocal 和 ThreadStatic 特性)
public readonly ThreadLocal<int> a = new ThreadLocal<int>();
或
[ThreadStatic]
public static int a;
- 轻量级锁: Interlocked(为多线程共享变量提供原子操作,提供递增、递减、交换和读取值的静态方法)
- 它的特点是:
(1) 相对于其他线程同步技术,速度会快很多。(它的原子操作是基于CPU本身的,非阻塞的,所以要比lock的效率高。)
(2) 只能用于简单的同步问题。
- 用法
方法 | 作用 |
---|---|
CompareExchange(ref uint location, uint value, uint comparand) | location == comparand ? value : location |
Exchange(ref double location1, double value) | location = value |
Increment(ref ulong location) | location++ |
Decrement(ref uint location) | location– |
Add(ref int location, int value) | location += value |
Read(ref long location) | 读取location |
-
同步锁:SpinWait
-
互斥锁:Mutex(是System.Threading命名空间下的一个同步基元,可用于线程间甚至进程间的同步。)
WaitOne() 获取锁的所有权
ReleaseMutex 释放互斥锁的所有权
Dispose 销毁互斥锁
进程建的同步测试?
未完。。。