boost asio asyncread

namespace
{
// strand提供串行执行, 能够保证线程安全, 同时被post或dispatch的方法, 不会被并发的执行.
// io_service不能保证线程安全
boost::asio::io_service m_service;
boost::asio::strand m_ www.hbbz08.com strand(m_service);
boost::mutex m_mutex;

void print(int id)
{
// boost::mutex::scoped_lock lock(m_mutex);
static int count = 0;
PRINT_DEBUG("id: " << boost::lexical_cast<std::string>(id));
PRINT_DEBUG("count: " << boost::lexical_cast<std::string>(++count));
}

void ioRun1()
{
while(true)
{
m_service.run();
}
}

void ioRun2()
{
while(true)
{
m_service.run();
}
}

void strand_print1()
{
// PRINT_DEBUG("Enter print1");
m_strand.dispatch(boost::bind(print, 1));
// PRINT_DEBUG("Exit print1");
}

void strand_print2()
{
// PRINT_DEBUG("Enter print2");
m_strand.post(boost::bind(print, 2));
// PRINT_DEBUG("Exit print2");
}

void strand_print3()
{
// PRINT_DEBUG("Enter print3");
m_strand.post(boost::bind(print, 3));
// PRINT_DEBUG("Exit print3");
}

void strand_print4()
{
// PRINT_DEBUG("Enter print4");
m_strand.post(boost::bind(print, 4));
// PRINT_DEBUG("Exit print4");
}

// 将上面的m_strand换成m_service后,
void service_print1()
{
// PRINT_DEBUG("Enter print1");
m_service.dispatch(boost::bind(print, 1));
// PRINT_DEBUG("Exit print1");
}

void service_print2()
{
// PRINT_DEBUG("Enter print2");
m_service.post(boost::bind(print, 2));
// PRINT_DEBUG("Exit print2");
}

void service_print3()
{
// PRINT_DEBUG("Enter print3");
m_service.post(boost::bind(print, 3));
// PRINT_DEBUG("Exit print3");
}

void service_print4()
{
// PRINT_DEBUG("Enter print4");
m_service.post(boost::bind(print, 4));
// PRINT_DEBUG("Exit print4");
}
}

void test_strand()
{
boost::thread ios1(ioRun1);
boost::thread ios2(ioRun2);

boost::thread t1(strand_print1);
boost::thread t2(strand_print2);
boost::thread t3(strand_print3);
boost::thread t4(strand_print4);

t1.join();
t2.join();
t3.join();
t4.join();

m_server.run();
}

void test_service()
{
boost::thread ios1(ioRun1);
boost::thread ios2(ioRun2);

boost::thread t1(service_print1);
boost::thread t2(service_print2);
boost::thread t3(service_print3);
boost::thread t4(service_print4);

t1.join();
t2.join();
t3.join();
t4.join();

m_service.run();
}
test_strand的执行结果:
[cpp] view plain copy print?
2013-01-05 17:25:34 626 [8228] DEBUG - id: 4
2013-01-05 17:25:34 631 [8228] DEBUG - count: 1
2013-01-05 17:25:34 634 [5692] DEBUG - id: 1
2013-01-05 17:25:34 637 [5692] DEBUG - count: 2
2013-01-05 17:25:34 640 [5692] DEBUG - id: 2
2013-01-05 17:25:34 642 [5692] DEBUG - count: 3
2013-01-05 17:25:34 646 [5692] DEBUG - id: 3
2013-01-05 17:25:34 649 [5692] DEBUG - count: 4
test_ioserivice的执行结果:
[cpp] view plain copy print?
2013-01-05 17:26:28 071 [3236] DEBUG - id: 1
2013-01-05 17:26:28 071 [5768] DEBUG - id: 2
2013-01-05 17:26:28 071 [5108] DEBUG - id: 3
2013-01-05 17:26:28 076 [3236] DEBUG - cou
喜欢阅读
  • 野火天明

    野火天明

    屌丝小职员酒醉,美女总裁送他回家,却被妻子意外的发现蛛丝马迹,婚姻危机由此爆发。在他人生陷入最低谷的时刻,美女总裁携手和他宦海浮沉,助他成功转型。他想和她永远在一起,无奈却被那道枷锁牢牢绑住……

  • 狂傲质妃

    狂傲质妃

    她放弃了深爱着她的男人,自愿走入那个充满未知数的皇宫。他是一个恶魔!这是她见到他第一的感觉。一次杀她全家八十口,捉她同床强迫殴打谩骂极尽折磨之能事,她问他为了什么,他却说每一次对你的侮辱都是对那男人最好的惩罚。

  • 倾世公主:长孙殿下放肆宠

    倾世公主:长孙殿下放肆宠

    一朝穿越,她还没有反应过来,就要作为和亲公主出嫁?逃,必须得逃!可是谁能告诉她这位面冷心更冷的誉王大大是不是派来克她的?逢逃必被抓啊!“誉王大大,你就放过我好吗?我还得去找我孩子他爸……”男人露出一抹邪笑,“王妃,带着我的种,你要跑到哪里去?”

  • 先孕后婚,总裁强势爱

    先孕后婚,总裁强势爱

    父母早逝。哥哥放弃学业供他上学。她又为了哥哥的病卖掉自己。究竟是所遇非人还是遇到了终生的幸福。

  • 那一眸似水年华

    那一眸似水年华

    顾箐如曾说,沈思彦,因为你,我想看到这个世界。她爱他的时候,他百般折磨,视而不见。安小曼死的时候,沈思彦以为这辈子那颗心再也不会为谁跳动了。当顾箐如离开的时候,他幡然醒悟,却终归是迟迟的爱。当她剜去双眼的时候,她说:沈思彦,我不欠你什么,从此我们两清。

  • 穿越成恶毒女配的我

    穿越成恶毒女配的我

    她不幸穿越进一本看过的玛丽苏小白文中?却没有穿成那个套着“人人爱我,我爱人人”主角光环的白莲花女主!而是穿成了教科书般的人物——恶毒女配!坑爹呢?未婚夫爱上女主无法自拔,嫡亲兄弟疏远她却百般讨好女主。自己三天两头找女主麻烦,却落得一个众叛亲离、名声狼藉、清白被污,惨死乱葬岗的下场。她表示鸭梨山大,摆脱命运从我做起!白莲花既然你非要不依不饶的踩着我上位,那就别怪我将反派进行到底了!且看她揭穿白莲花伪善的真面目,勇斗主角光环!只是,男主男配们……你们那么如狼似虎的盯着我干嘛?

  • 替嫁王妃请笑纳

    替嫁王妃请笑纳

    一手治活人病,一手挖死人财,云七夕的小日子过得那叫一个丰富多彩。却不想,戴了一个墓主人的玉扳指就穿越了。来到人生地不熟的古代,她重操旧业。谁知竟给自己淘来一个新的身份——国公府的二小姐。本是皇上钦定的太子妃,可太子大婚,花轿里坐着的竟是这二小姐的姐姐。呵,真有意思!既然如此,那就成全他们好了,渣男配渣女,绝配!可皇上旨意又来了,既与太子无缘,那就嫁给晋王吧!皇上,您还真爱乱点鸳鸯谱!是王爷又如何,就那货那副高冷的样子,谁爱嫁谁嫁去。等等,那货手里戴的那个玉扳指,怎么那么像害得她穿越的那一个?于是,从那以后,晋王爷的身后多了一只跟屁虫。“爷,你这玉扳指卖给我可好?”“你买不起。”某人高傲挑眉。心里问候过某人的祖宗后,云七夕又挤了丝讨好的笑,“爷,你开个价,咱不差钱儿。”某人扫她一眼,气定神闲,“此物无价,只传子孙。”云七夕瞬间风中凌乱。

  • 转眼泪水湿满襟

    转眼泪水湿满襟

    她以为离婚成功,收拾包袱潇洒拜拜,谁知转眼他就来敲门。第一次,他一脸淡定:“老婆,宝宝饿了!”第二次,他死皮赖脸:“老婆,我也饿了!”第三次,他直接扑倒:“老婆,好冷,来动一动!”前夫的夺情索爱,她无力反抗,步步惊情。“我们已经离婚了!”她终于忍无可忍。他决然的把小包子塞过来:“喏,一个不够,再添两个拖油瓶!”

  • 猜你喜欢
  • boost asio
  • boost asio教程
  • boost asio中文教程
  • boost asio buffer
  • boost asio http
  • boost asio安装
  • boost asio strand
  • boost asio 使用
  • c boost asio
  • boost asio 串口
  • 热门推荐
  • 柚子不能和什么同吃
  • wooderful life 上海
  • 曲江人才交流中心地址
  • 塑料线性热膨胀系数
  • 著名的硬件 软件 bug
  • cav590功放怎么样
  • 广州财校
  • mariska 2012
  • php接收数组参数
  • mavic air 遥控器充电
  • 其乐北京专柜 金源
  • 荒野大镖客2吧
  • reol上海live视频
  • 暗黑血统2怎么爬墙
  • the catch第二季百度
  • 女孩逼迫男孩扮女装
  • eolinker开源版
  • love可数么
  • 北欧神话abc百度云
  • fix字幕侠百度网盘
  • All Right Reserved 如说吧