A thread synchronization class

xiaoxiao2021-03-06  39

// LOCKOBJ.H: Interface for the clockobj class.////

#if! defined (LOCKOBJ_H) #define lockobj_h

#if _msc_ver> 1000 # prgma overce # endif //_msc_ver> 1000 # include "stdtype.h"

Class clockobj {public: Virtual void Lock () = 0; Virtual Void UNLOCK () = 0;

Class clockobjcs: public clockobj {protected: critical_section m_cs; public: clockobjcs () {INITIALIZECRITILSECTION (& M_CS);

ClockobJCS (Const Clockobjcs &) {InitializeCriticalSection (& M_CS);

ClockobJCS (const clockobjcs *) {INITIALIZECRITICALSECTION (& m_cs);

Virtual ~ clockobjcs () {deletecriticalsection (& m_cs);}; Virtual Void Lock () {EntercriticalSection (& M_CS);

Virtual void UNLOCK () {LeaveCriticalSection;};

Class clock {protected: clockobj * m_plockobj; public: clock (clockobj * plockobj): m_plockobj (PLOCKOBJ) {m_plockobj-> lock ();

Virtual ~ clock () {m_plockobj-> UNLOCK ();}};

#ENDIF How does ClockobJCS g_mycs; int g_icount = 0; threadadd () {Clock Lock (& ​​g_mycs); g_icount;} THEADDEC () {Clock Lock (& ​​g_mycs); --g_icount;

转载请注明原文地址:https://www.9cbs.com/read-74789.html

New Post(0)