`
amornio19840908
  • 浏览: 55876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C++ boost thread学习(一)

    博客分类:
  • C++
阅读更多
使用boost.thread的时候,记得link到项目中,否则会报找不到的错误。

下面是使用mutex锁的例子

#include <boost/thread.hpp>
#include <boost/thread/mutex.hpp>

#include <iostream>

boost::mutex io_mutex;

using namespace std;

// 可以试试,将wait(int) 放在不同位置产生的效果
void wait(int seconds)
{
    boost::this_thread::sleep(boost::posix_time::seconds(seconds));
}

void hello()
{
	for (int i = 0; i < 10; ++i)
	{
		boost::mutex::scoped_lock lock(io_mutex);
		cout << i << endl;
	}
}

int main(int argc, char* argv[])
{
  // 传递一个工作函数来构造一个工作线程
  boost::thread thrd(&hello);
  boost::thread thrd2(&hello);

  thrd.join();
  thrd2.join();

  return 0;
}


为了防止程序终止,就需要对新建线程调用join方法。join方法是一个阻塞调用:它可以暂停当前线程,直到调用join的线程运行结束。这就使得main函数一直会等待到thread运行结束。

运行结果:(因为是2个线程同时运行,所以结果可能如下)
0
1
2
3
4
5
0
1
2
3
4
5
6
7
8
9
6
7
8
9
分享到:
评论

相关推荐

    C++ Boost Thread 编程指南

    C++ Boost Thread 编程指南 0分上船

    C++ Boost Thread 编程指南.doc

    C++ Boost Thread 编程指南.doc

    c++ boost 开发参考手册

    最近开发中用到大量BOOST库的东西,现在把我开发中总结的boost使用方法分享一下,里面包括智能指针、boost定时器、boostthread和io_service等的用法和说明,还有一本Beyond the C++ Standard Library: An ...

    C++ Boost Thread 编程

    标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。 就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户...

    boost—thread教程

    首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象; (2)explicit thread(const boost::function0& threadfunc): boost::function0可以...

    C++_Boost_Thread_编程指南

    C++_Boost_Thread_编程指南

    Boost C++扩展库

    Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。 Boost中比较有...

    THE BOOST C++ LIBRARIES

    THE BOOST C++ LIBRARIES是一份自己编译的chm格式文档,描述了如何使用boost类库,目录如下: Front page Chapter 1: Introduction 1.1 C++ and Boost 1.2 Development Process 1.3 Installation 1.4 Overview ...

    boost线程池(thread pool)

    很好用的boost线程池,实际例子在test目录

    C++ boost::asio编程-域名解析详细介绍

    C++ boost::asio编程-域名解析 在网络通信中通常我们并不直接使用IP地址,而是使用域名。这时候我们就需要用reslover类来通过域名获取IP,它可以实现 与IP版本无关的网址解析。 #include stdafx.h #include boost/...

    boost.thread.1.3.5中文翻译

    boost.thread.1.3.5中文翻译

    十多本关于Boost的书及资料,pdf+chm

    boost-thread.pdf boost_1_41_文档_中文版.chm boost_1_43_0_doc_en.chm Boost库学习指南.pdf Boost教程.pdf boost概览.pdf 侯捷_-_Boost_技术与应用.pdf 智能指针的标准之争 Boost_vs_Loki.pdf

    boost vs2012

    Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是...

    boost开源代码

    Boost库文件采用的.hpp的后缀,而不是分成两个文件,也就是”.h+.cpp”,之所以这样做是有理由的,首先就是与普通的C/C++头文件区分,另外一个原因就是使Boost库不需要预先编译,直接引用程序员的工程即可编译链接,...

    Boost库定制安装更新版

    Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,,作为标准库的后备,是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响...

    C++开源程序库 C++开源程序库

    比如在线程库方面,还有ZThread、boost::thread,如果放大到C/C++领域,还有APR,还有CII。在文件和目录操作方面,boost也有相应的组件,而在网络编程方面有socket++,还有boost::asio,未来的C ++0X中几乎肯定有一...

    C++中Boost库裁剪与其应用详解

    signal 库,还有泛型编程、模板编程子库如 call traits、mpl,还有并发编程相关的 thread 库,等等等等。 Boost 是如此强大,毫无疑问它也很大。Windows 上安装 boost 需要占用 2G+ 的空间,编译配置起来也

    C++后端学习的技术栈

    C++后端学习技术栈涵盖了开发高效、可扩展、安全的服务器端应用程序所需的一系列技能与工具。其主要组成部分包括: 1.精通C++编程语言:掌握现代语言特性,遵循最佳实践,并严格遵守《Effective C++》、C++核心指南...

Global site tag (gtag.js) - Google Analytics