使用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++中的挑战与机遇 随着互联网应用、事务服务器以及图形用户界面(GUI)应用程序等现代软件系统的复杂性增加,多线程编程已成为提高程序性能和响应...
Boost.Thread 是一个用于 C++ 的线程编程库,它为开发者提供了一套完整的多线程编程工具,包括线程管理、互斥锁、条件变量等。随着多核处理器的普及以及对并行计算的需求增加,多线程编程成为了现代软件开发中的必备...
**C++ Boost库**是C++编程语言的一个开源库集合,它为标准库提供了一系列的扩展,涵盖了诸如并发、算法、容器、智能指针、序列化、正则表达式、图形算法等多种领域。Boost库的设计目标是提升C++的效率、可移植性和可...
1. **Boost.And.STL学习资料**:这是一份关于如何结合使用Boost库和STL(Standard Template Library,标准模板库)的资源,两者都是C++编程中的重要工具,结合使用可以提高代码效率和可读性。 2. **An.Introduction....
C++ Boost Thread 编程指南.doc
1. **多线程支持**:Boost.Thread库提供了C++标准库中尚未包含的多线程编程接口,包括线程的创建、同步、线程局部存储等功能,有助于开发者编写高效的并发程序。 2. **智能指针**:Boost库中的smart_ptr系列(例如...
6. 线程管理:Boost.Thread库提供了C++标准库中没有的线程管理功能,如条件变量、线程池、异步调用等,使得在C++中编写多线程程序变得更加容易。 7. 日期时间处理:Boost.DateTime库提供了日期、时间和时间间隔的...
"C++BOOST中文帮助文档.zip"是一个压缩包,其中包含了一份Boost库的中文帮助文档,对于学习和使用Boost库的中文用户来说,这是一个非常宝贵的资源。 Boost库中的主要组件包括但不限于以下几个方面: 1. **智能指针...
最近开发中用到大量BOOST库的东西,现在把我开发中总结的boost使用方法分享一下,里面包括智能指针、boost定时器、boostthread和io_service等的用法和说明,还有一本Beyond the C++ Standard Library: An ...
Boost是一个开源的C++库集合,它为C++标准库提供了扩展,包含了大量的高效、高质量和跨平台的工具包。Boost库在C++社区中有着广泛的应用,许多 Boost 库已被采纳为C++标准库的一部分。Boost-1-83版本是Boost库的一个...
1.47版本的《C++ Boost手册》是开发者学习和使用Boost库的重要资源,它详细解释了每个库的用法、示例和注意事项,是提升C++编程技能不可或缺的参考书目。通过深入理解和熟练运用Boost库,开发者可以写出更高效、更...
C++ Boost Thread编程指南是关于如何在C++中利用Boost库进行多...最后,参考资料部分提供了更多深入学习Boost.Thread和其他相关技术的资源,帮助程序员更好地理解和利用这个强大的库来编写高效、可靠的多线程C++程序。
Boost库是C++社区开发的一个开源库,它提供了一系列经过精心设计和广泛测试的C++模板库,极大地扩展了C++的功能。The Boost C++ Libraries中文版.chm涵盖了以下关键模块: 1. **智能指针**:如shared_ptr、unique_...
通过学习这本书,读者不仅可以掌握C++11和C++14的现代编程技巧,还能深入了解Boost库的应用,提高编程效率,编写出更高效、更可靠的软件。无论是对C++初学者还是经验丰富的开发者来说,都是一本不可多得的参考书籍。
C++起源于1979年,由Bjarne Stroustrup在C语言的基础上增加了类的概念,逐步发展成一种支持数据抽象、面向对象编程和泛型编程的通用编程语言。随着时间的推移,C++经历了多次重要的标准化进程,包括1998年的C++98...
Boost库是C++编程语言中的一个开源库集合,它为标准库提供了许多扩展,增加了大量高效、高质量的工具和库,极大地丰富了C++的功能。Boost库被广泛应用于各种项目,从小型应用到大型系统,都有其身影。下面将详细讨论...
综上所述,Boost C++ Libraries不仅是一组强大的工具集,也为C++开发者提供了广阔的学习和发展空间。通过学习和应用Boost库,开发者可以提高自己的编程技能,同时也能为项目带来更高的生产力和效率。随着未来C++标准...
首先看看boost::thread的构造函数吧,boost::thread有两个构造函数: (1)thread():构造一个表示当前执行线程的线程对象; (2)explicit thread(const boost::function0& threadfunc): boost::function0可以...
Boost.Thread库则为C++提供了线程管理和同步原语,部分功能在C++11的std::thread和std::mutex等中得到了标准化。Boost.Bind和Boost.Lambda则为函数对象和函数绑定提供了支持,这在C++11的lambda表达式中得到了更简洁...