译 - Locks, Mutexes, and Semaphores: Types of Synchronization Objects
Locks
lock是一个抽象的概念。一个基本的前提就是一个lock保护着某种共享资源的访问。如果你own一个lock,那么你就能访问被保护的共享资源。如果你没有own lock,那么你就不能够访问这个共享资源。
lock是一个抽象的概念。一个基本的前提就是一个lock保护着某种共享资源的访问。如果你own一个lock,那么你就能访问被保护的共享资源。如果你没有own lock,那么你就不能够访问这个共享资源。
std::thread
:线程管理的相关类和函数。
对于那些不是那么简单的任务,库提供了可以让你从基本的代码来构建你需要的东西的灵活性。
每个C++程序都至少有一个线程,这个线程是由C++运行时启动的:运行main()
的那个线程。
最近在看这本书,这个系列文章是我在看书过程中的笔记,记录了一些我觉得关键的地方和自己的思考。如果能帮助到你,I will be very happy :).
{% blockquote 并发编程网 http://ifeve.com/c-plus-plus-concurrency-in-action/ 《C++ Concurrency in Action》中文版 %} 本书是一本基于C++11新标准的并发和多线程编程深度指南。从std::thread、std::mutex、std::future和std::async等基础类的使用,到内存模型和原子操作、基于锁和无锁数据结构的构建,再扩展到并行算法、线程管理,最后还介绍了多线程代码的测试工作。本书的附录部分还对C++11新语言特性中与多线程相关的项目进行了简要的介绍,并提供了C++11线程库的完整参考。 {% endblockquote %}
在Ubuntu中使用Clang++,
|
|
编译C++11编写的多线程代码时,
|
|
发现如下问题:
-pthread告诉编译器,要链接到pthread库,同时配置线程的编译。
下面的例子就显示了在使用-pthread时,定义了不同的宏。
|
|
-lpthread只会告诉编译器,要链接到pthread库,但是这些宏不会被定义。
C++中,引用为对象起了另外一个名字,引用类型refers to另外一种类型。定义引用时,把引用和初始值绑定在一起,而不是将初始值拷贝给引用。定义了引用之后,对其进行的所有操作都是在与之绑定的对象上进行的。但是引用本身不是一个对象。