ACE利用ACE_Thread_Mutex实现线程间互斥访问临界区
来源:互联网 发布:嵌入式c语言应用领域 编辑:程序博客网 时间:2024/05/22 17:48
#include "ace/Thread.h"
#include "ace/Synch.h"
#include "ace/Log_Msg.h"
struct Args{
public:
Args(int iterations):_mutex(),iterations(iterations){}
ACE_Thread_Mutex _mutex;
int iterations;
};
static void* worker(void *arguments)
{
Args *args = (Args *)arguments;
for(int i=0;i<args->iterations;i++)
{
ACE_DEBUG((LM_DEBUG,"%t Trying to get iterations\n"));
args->_mutex.acquire();
ACE_DEBUG((LM_DEBUG,"%t This iterations number%d\n",i));
ACE_OS::sleep(2);
args->_mutex.release();
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
Args args(5);
int nThreads = 5;
ACE_thread_t *threadId= new ACE_thread_t[nThreads+1];
ACE_hthread_t *threadHandles = new ACE_hthread_t[nThreads+1];
if(ACE_Thread::spawn_n(threadId, nThreads, (ACE_THR_FUNC)worker, (void *)&args,
THR_JOINABLE|THR_NEW_LWP,ACE_DEFAULT_THREAD_PRIORITY,0,0,threadHandles)==-1)
{
ACE_DEBUG((LM_DEBUG,"ACE_THREAD spawn_n failed\n"));
}
for(int i=0;i<nThreads;i++)
ACE_Thread::join(threadHandles[i]);
return 0;
}
#include "ace/Synch.h"
#include "ace/Log_Msg.h"
struct Args{
public:
Args(int iterations):_mutex(),iterations(iterations){}
ACE_Thread_Mutex _mutex;
int iterations;
};
static void* worker(void *arguments)
{
Args *args = (Args *)arguments;
for(int i=0;i<args->iterations;i++)
{
ACE_DEBUG((LM_DEBUG,"%t Trying to get iterations\n"));
args->_mutex.acquire();
ACE_DEBUG((LM_DEBUG,"%t This iterations number%d\n",i));
ACE_OS::sleep(2);
args->_mutex.release();
}
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
Args args(5);
int nThreads = 5;
ACE_thread_t *threadId= new ACE_thread_t[nThreads+1];
ACE_hthread_t *threadHandles = new ACE_hthread_t[nThreads+1];
if(ACE_Thread::spawn_n(threadId, nThreads, (ACE_THR_FUNC)worker, (void *)&args,
THR_JOINABLE|THR_NEW_LWP,ACE_DEFAULT_THREAD_PRIORITY,0,0,threadHandles)==-1)
{
ACE_DEBUG((LM_DEBUG,"ACE_THREAD spawn_n failed\n"));
}
for(int i=0;i<nThreads;i++)
ACE_Thread::join(threadHandles[i]);
return 0;
}
- ACE利用ACE_Thread_Mutex实现线程间互斥访问临界区
- ACE线程之ACE_Thread_Mutex互斥锁
- [ACE程序员教程笔记]使用ACE_Thread_Mutex访问子线程中的数据
- 利用关键代码段(临界区)实现线程同步
- ACE - ACE_Recursive_Thread_Mutex, ACE_Thread_Mutex, ACE_Condition
- ACE - ACE_Recursive_Thread_Mutex, ACE_Thread_Mutex, ACE_Condition .
- 利用ACE 自己实现的线程池
- 线程1:临界区,解决线程访问冲突问题
- 利用ACE管理线程
- 临界区实现线程同步互斥
- 多线程实现线程同步~~临界区对象
- 多线程实现线程同步~~临界区对象
- 利用ace的ACE_Task等类实现线程池
- 【Java】利用synchronized(this)完成线程的临界区
- 线程同步-临界区
- 线程同步-临界区
- 线程、进程、临界区
- 用临界区实现互斥资源的访问
- android环境配置(Error generating final archive: java.io.FileNotFoundException: D:\Android\Hello\bin\res)
- Java定时任务的实现
- 题目:请输入星期几的第一个字母来判断一下是星期几,
- Java定时任务总结
- 拿什么拯救你、我的"情人节"
- ACE利用ACE_Thread_Mutex实现线程间互斥访问临界区
- JDBC学习之路(十一)使用开源项目DBCP
- java复合快捷键
- hdu 1878 欧拉回路
- IE layout详解
- Visio 的Win7下容易崩溃问题解决
- 【问题】QT,安装就出错
- 开发那点事系列二 - ClassLoader trouble shooting references
- web.xml标签详解