简单写了个小程序,比较了一下C#中各种Lock的速度(前提是都没有进入wait状态)。
各进入离开Lock 1kw次,结果如下:
| Lock | Time (ms) |
| No lock | 58 |
| CriticalSection | 726 |
| Interlocked | 344 |
| Readerslim | 1932 |
| Writerslim | 1513 |
| Reader | 3754 |
| Writer | 3430 |
| Mutex | 24998 |
| Semaphore | 24197 |
| Event | 22549 |
结论如下:
代码下载:
http://usayjq.bay.livefilestore.com/y1pbebZJ6xcesXSXcujFmihM0LVhFuA62IJ37Gz0vgDI2CLDpEGuwwB_E1E5CnDpJBQoVgilKW-61Y/LockSpeedTester.zip?download