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 + -
显示快捷键?