`
amornio19840908
  • 浏览: 56429 次
  • 性别: 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 编程指南精要解析 #### 前言:多线程编程在C++中的挑战与机遇 随着互联网应用、事务服务器以及图形用户界面(GUI)应用程序等现代软件系统的复杂性增加,多线程编程已成为提高程序性能和响应...

    C++ Boost Thread 编程

    Boost.Thread 是一个用于 C++ 的线程编程库,它为开发者提供了一套完整的多线程编程工具,包括线程管理、互斥锁、条件变量等。随着多核处理器的普及以及对并行计算的需求增加,多线程编程成为了现代软件开发中的必备...

    C++ Boost 库中文文档

    **C++ Boost库**是C++编程语言的一个开源库集合,它为标准库提供了一系列的扩展,涵盖了诸如并发、算法、容器、智能指针、序列化、正则表达式、图形算法等多种领域。Boost库的设计目标是提升C++的效率、可移植性和可...

    BOOST学习资料整理收集

    1. **Boost.And.STL学习资料**:这是一份关于如何结合使用Boost库和STL(Standard Template Library,标准模板库)的资源,两者都是C++编程中的重要工具,结合使用可以提高代码效率和可读性。 2. **An.Introduction....

    C++ Boost Thread 编程指南.doc

    C++ Boost Thread 编程指南.doc

    c++ boost 最新文档pdf(1.55)

    2. **多线程支持**:Boost.Thread提供了线程管理和同步原语,如互斥量(mutexes)、条件变量(condition variables)和信号量(semaphores),使得在C++中编写多线程程序变得更加容易。 3. **Functional ...

    C++BOOST中文帮助文档.zip

    "C++BOOST中文帮助文档.zip"是一个压缩包,其中包含了一份Boost库的中文帮助文档,对于学习和使用Boost库的中文用户来说,这是一个非常宝贵的资源。 Boost库中的主要组件包括但不限于以下几个方面: 1. **智能指针...

    boost中文手册C++

    6. 线程管理:Boost.Thread库提供了C++标准库中没有的线程管理功能,如条件变量、线程池、异步调用等,使得在C++中编写多线程程序变得更加容易。 7. 日期时间处理:Boost.DateTime库提供了日期、时间和时间间隔的...

    c++boost库最新版本

    1. **多线程支持**:Boost.Thread库提供了C++标准库中尚未包含的多线程编程接口,包括线程的创建、同步、线程局部存储等功能,有助于开发者编写高效的并发程序。 2. **智能指针**:Boost库中的smart_ptr系列(例如...

    c++ boost 开发参考手册

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

    C++ Boost manual

    1.47版本的《C++ Boost手册》是开发者学习和使用Boost库的重要资源,它详细解释了每个库的用法、示例和注意事项,是提升C++编程技能不可或缺的参考书目。通过深入理解和熟练运用Boost库,开发者可以写出更高效、更...

    C++11/14高级编程 Boost程序库探秘 中文版 第三版 高清完整

    通过学习这本书,读者不仅可以掌握C++11和C++14的现代编程技巧,还能深入了解Boost库的应用,提高编程效率,编写出更高效、更可靠的软件。无论是对C++初学者还是经验丰富的开发者来说,都是一本不可多得的参考书籍。

    C++_Boost_Thread_编程指南

    C++ Boost Thread编程指南是关于如何在C++中利用Boost库进行多...最后,参考资料部分提供了更多深入学习Boost.Thread和其他相关技术的资源,帮助程序员更好地理解和利用这个强大的库来编写高效、可靠的多线程C++程序。

    C++准标准库Boost介绍

    C++起源于1979年,由Bjarne Stroustrup在C语言的基础上增加了类的概念,逐步发展成一种支持数据抽象、面向对象编程和泛型编程的通用编程语言。随着时间的推移,C++经历了多次重要的标准化进程,包括1998年的C++98...

    C++使用的boost库

    Boost库是C++编程语言中的一个开源库集合,它为标准库提供了许多扩展,增加了大量高效、高质量的工具和库,极大地丰富了C++的功能。Boost库被广泛应用于各种项目,从小型应用到大型系统,都有其身影。下面将详细讨论...

    The boost c++ libraries PDF

    综上所述,Boost C++ Libraries不仅是一组强大的工具集,也为C++开发者提供了广阔的学习和发展空间。通过学习和应用Boost库,开发者可以提高自己的编程技能,同时也能为项目带来更高的生产力和效率。随着未来C++标准...

    C++参考手册中文版chm以及Boost库中文版chm

    Boost库是C++社区开发的一个开源库,它提供了一系列经过精心设计和广泛测试的C++模板库,极大地扩展了C++的功能。The Boost C++ Libraries中文版.chm涵盖了以下关键模块: 1. **智能指针**:如shared_ptr、unique_...

    boost—thread教程

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

    C++Boost库完全开发指南_深入Cpp准标准库_带目.录zip

    Boost.Thread库则为C++提供了线程管理和同步原语,部分功能在C++11的std::thread和std::mutex等中得到了标准化。Boost.Bind和Boost.Lambda则为函数对象和函数绑定提供了支持,这在C++11的lambda表达式中得到了更简洁...

Global site tag (gtag.js) - Google Analytics