我最初看VC多线程编程时,书中只谈到临界区,互斥量,事件。在《C++面向对象多线程编程》中又出现管道。
现在对互斥量,事件的同步能较好的理解,但对临界区同步不是很清楚,不知有谁能提供一些例程?
对于管道在线程同步中的作用,如何实现不是很清楚,希望有高手给指点一下?
我是初学者,在目前所看的书中对管道和临界区这部分内容讲的不是很多。
还望大家给提供一些相关多线程的编程资料。谢谢!
------解决方案--------------------------------------------------------
臨界區其實是一個概念,多綫程裏面綫程同步的方法很多。臨界區,信號量,互斥,事件,管道。它們都有者不同的優點和缺點,但是使用它們,都是爲了使我們多個綫程共同維護的數據保證正常。這個纔是重點。臨界區呢,不是内核資源,輕量級的同步辦法。使用就很簡單了薩,建立一個臨界區變量,然後Init enter leave delete。。。
管道呢,是IPC的重要方式。有2种,一種是命名管道。一種是匿名管道。它的特點是跨進程,甚至跨機器,但是它是單向的。關於多進程,看看候捷的<win32多綫程程序設計>,必有所得。。。
------解决方案--------------------------------------------------------
- C/C++ code
InitializeCriticalSection() EnterCriticalSection() LeaveCriticalSection() DeleteCriticalSection()