Chinaunix首页 | 论坛 | 博客
  • 博客访问: 913033
  • 博文数量: 299
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2493
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-21 10:07
个人简介

Linux后台服务器编程。

文章分类

全部博文(299)

文章存档

2015年(2)

2014年(297)

分类: C/C++

2014-11-02 16:38:28

boost中使用线程和mutex的示例:

点击(此处)折叠或打开

  1. #include <boost/thread/mutex.hpp>
  2. #include <boost/thread/thread.hpp>
  3. #include <iostream>

  4. boost::mutex io_mutex; // The iostreams are not guaranteed to be thread-

  5. class counter
  6. {
  7. public:
  8.     counter() : count(0) { }

  9.     int increment() {
  10.         boost::mutex::scoped_lock scoped_lock(mutex);
  11.         return ++count;
  12.     }

  13. private:
  14.     boost::mutex mutex;
  15.     int count;
  16. };

  17. counter c;

  18. void change_count()
  19. {
  20.     int i = c.increment();
  21.     boost::mutex::scoped_lock scoped_lock(io_mutex);
  22.     std::cout << "count == " << i << std::endl;
  23. }

  24. int main(int, char*[])
  25. {
  26.     const int num_threads = 4;
  27.     boost::thread_group thrds;
  28.     for (int i=0; i < num_threads; ++i)
  29.         thrds.create_thread(&change_count);

  30.     thrds.join_all();

  31.     return 0;
  32. }

阅读(3073) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~