/*boost::function<void()> f;
f = boost::bind(threadfunc);
FuncThread thread(f);*/
//thread.run();
boost::function<void()> f;
f = boost::bind(threadfunc);
f();
/*boost::thread thrd(f);*/
/*WorkPool wp;
wp.start();
wp.post(thread);*/
#include "StdAfx.h"
#include "WorkPool.h"
boost::mutex io_mutex;
WorkPool::WorkPool(void)
{
}
WorkPool::~WorkPool(void)
{
}
void WorkPool::runInThread()
{
try
{
while(1)
{
boost::mutex::scoped_lock lock(io_mutex);
if(!queue.empty())
{
FuncThread ft = queue.front();
queue.pop_front();
ft.run();
}
}
}
catch (const std::exception& ex)
{
fprintf(stderr, "reason: %s\n", ex.what());
abort();
}
catch (...)
{
throw; // rethrow
}
}
void WorkPool::start()
{
for (int i = 0; i < 10; ++i)
{
threads_.push_back(new boost::thread(
boost::bind(&WorkPool::runInThread, this)));
}
}
void WorkPool::post(FuncThread ft)
{
boost::mutex::scoped_lock lock(io_mutex);
queue.push_back(ft);
}
#pragma once
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <boost/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <deque>
#include <boost/ptr_container/ptr_vector.hpp>
#include "FuncThread.h"
using namespace std;
class WorkPool
{
public:
void runInThread();
void start();
void post(FuncThread ft);
boost::ptr_vector<boost::thread> threads_;
deque<FuncThread> queue;
public:
WorkPool(void);
~WorkPool(void);
};
#include "StdAfx.h"
#include "FuncThread.h"
FuncThread::FuncThread(boost::function<void()> &Func) : PFunc(Func)
{
}
FuncThread::~FuncThread(void)
{
}
void FuncThread::run()
{
PFunc();
}
#pragma once
#include <boost/function.hpp>
#include <boost/bind.hpp>
using namespace std;
class FuncThread
{
public:
void run();
boost::function<void()> PFunc;
public:
FuncThread(boost::function<void()> &Func);
~FuncThread(void);
};
分享到:
相关推荐
atmega8 AVR串口接收做移位寄存器,然后做18位PWM输出
Huffman encoder that he had just written it can run smoothly no problem setting
学生成绩管理系统设计 学生成绩信息包括:学号、姓名、C语言成绩。试设计一选修课程系统,使之能提供以下功能: 系统以菜单方式工作(用键盘输入1~4之间的数来选择功能) (1)成绩信息录入功能(成绩信息用文件保存) ...
TAB选项卡
网络搜集第一种: 如两台机都有网卡,就做或买“双机互联”的网线,几元钱,电脑城卖网络产品的都能帮你做,然后两台机的IP和工作组都设置一下就行了。 IP分别为192.168.0.1和192.168.0.2 ,子网隐码会自动设为255....
车内can数据文件 通讯矩阵 一般都是汽车厂的重要机密文件 可以大大节省破解原车数据的时间! 新手也可以了解车内总线信息, 加深对汽车的理解
excel导出与导入神器,poi-el。 1. poi-el支持强大的excel模板导出功能 2. poi-el支持方便的excel导入API
kkk1.py
某科技内部网络营销kkk.pptx
fghuj银行家算法 示例源码kkk双人台球示例源码fghuj银行家算法 示例源码kkk双人台球示例源码fghuj银行家算法 示例源码kkk双人台球示例源码fghuj银行家算法 示例源码kkk双人台球示例源码
kkk-ap风机的运行维护手册(中英文对照)8p.pdfkkk-ap风机的运行维护手册(中英文对照)8p.pdfkkk-ap风机的运行维护手册(中英文对照)8p.pdfkkk-ap风机的运行维护手册(中英文对照)8p.pdfkkk-ap风机的运行维护手册(中英文...
PWM双闭环直流脉宽调速系统建模与仿真设计kkk.doc
远卓—深圳KKK股份公司:建立中国一流的自动控制技术解决方案服务商.ppt
从键盘输入两个数字(0~7)之间 (1)用16进制表示两个数的和 (2)用四位二进制表示两个数的差,结果一定>=0 (3)用两位十进制表示两个数的积 exemple:
比较不错的源程序代码,VC环境下运行,实现进制间的相互转换
kkk.cpp
经典的俄罗斯方块,按键会有对应的声音,有背景音乐,可以调节级别,有分数排行榜
LAB MANUAL FOR BEEE REFERENCES
The grayscale processed image is saved in the compression package. Please have a look
实现pc机器的,并口功能。而且可以满足大多人的需求