线程同步

来源:互联网 发布:python 中英文摘要 编辑:程序博客网 时间:2024/05/16 07:24

用户模式下的线程同步:

1.线程同步机制:Volatile,InterLocked,关键段,SRWLock(共享模式、独占模式)。

2.使用旋转锁时(spinlock)是,必须确保锁变量和锁所保护的数据位于不同的高速缓存中。如果锁变量和数据共享同一高速缓存行,那么使用资源的CPU就会与任何试图访问资源的CPU发生争夺,而这会影响性能。

3.使用锁的几个技巧:1)以原子方式操作一组对象时使用一个锁;2)同时访问多个逻辑资源;3)不要长时间占用锁。

用内核对象进行线程同步:

1.造成内核对象比用户模式下的同步机制慢几个数量级的原因,是伴随调试新线程而来的刷新高速缓存以及错过高速缓存。

2.当进程终止时,操作系统会自动使进程内核对象变成触发状态。当进程内核对象被触发后,它将永远保持这种状态,再也不会变回到未触发状态。

3.内核对象:进程,线程,作业,文件以及控制台的标准输入流/输出流/错误流,事件,可等待的计时器,信号量,互斥量。

4.有两种不同类型的事件对象:手动重置事件和自动重置事件。

5.互斥量是内核对象,而关键段是用户模式下的同步对象。互斥量比关键段慢,不同进程中的线程可以访问同一个互斥量。

0 0
原创粉丝点击