tokens_deadlock.cpp
来自「ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识」· C++ 代码 · 共 70 行
CPP
70 行
// $Id: Tokens_Deadlock.cpp 71351 2006-03-01 23:48:42Z shuston $#include "ace/Local_Tokens.h"#include "ace/Task.h"#include "ace/OS_NS_unistd.h"#if defined (ACE_HAS_TOKENS_LIBRARY)// Listing 1 code/ch14class ThreadOne : public ACE_Task_Base{public: virtual int svc (void) { ACE_Local_Mutex mutex1 (ACE_TEXT ("resource1"), 0, // Deadlock detection enabled. 1);// Debugging enabled. mutex1.acquire (); ACE_OS::sleep (2); ACE_Local_Mutex mutex2 (ACE_TEXT ("resource2"), 0, 1); mutex2.acquire (); return 0; }};class ThreadTwo : public ACE_Task_Base{public: virtual int svc (void) { ACE_Local_Mutex mutex2 (ACE_TEXT ("resource2"), 0, // Deadlock detection enabled. 1);// Debugging enabled. mutex2.acquire (); ACE_OS::sleep (2); ACE_Local_Mutex mutex1 (ACE_TEXT ("resource1"), 0, // Deadlock detection enabled. 1);// Debugging enabled. mutex1.acquire (); return 0; }};int ACE_TMAIN (int, ACE_TCHAR *[]){ ThreadOne t1; ThreadTwo t2; t1.activate (); ACE_OS::sleep (1); t2.activate (); t1.wait (); t2.wait (); return 0;}// Listing 1#else /* defined (ACE_HAS_TOKENS_LIBRARY) */int ACE_TMAIN (int, ACE_TCHAR *[]){ ACE_ERROR ((LM_ERROR, ACE_TEXT ("local tokens not supported ") ACE_TEXT ("on this platform\n"))); return 0;}#endif /* defined (ACE_HAS_TOKENS_LIBRARY) */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?