![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++11
swartz_lubel
这个作者很懒,什么都没留下…
展开
-
C++11 并发指南一(C++11 多线程初探)
引言C++11 自2011年发布以来已经快两年了,之前一直没怎么关注,直到最近几个月才看了一些 C++11 的新特性,今后几篇博客我都会写一些关于 C++11 的特性,算是记录一下自己学到的东西吧,和大家共勉。相信 Linux 程序员都用过 Pthread, 但有了 C++11 的 std::thread 以后,你可以在语言层面编写多线程程序了,直接的好处就是多线程程序的可移植性得到了很大转载 2017-02-27 23:49:46 · 387 阅读 · 0 评论 -
C++11 并发指南六( <atomic> 类型详解二 std::atomic )
C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍) 一文介绍了 C++11 中最简单的原子类型 std::atomic_flag,但是 std::atomic_flag 过于简单,只提供了 test_and_set 和 clear 两个 API,不能满足其他需求(如 store, load, exchange, compare_exchange 等),因此本文将转载 2017-02-28 00:24:12 · 778 阅读 · 1 评论 -
C++11 并发指南五(std::condition_variable 详解)
前面三讲《C++11 并发指南二(std::thread 详解)》,《C++11 并发指南三(std::mutex 详解)》分别介绍了 std::thread,std::mutex,std::future 等相关内容,相信读者对 C++11 中的多线程编程有了一个最基本的认识,本文将介绍 C++11 标准中 头文件里面的类和相关函数。 头文件主要包含了与条件变量相关的类和函数。相关的类包转载 2017-02-28 00:19:38 · 682 阅读 · 0 评论 -
C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)
C++11 并发指南已经写了 5 章,前五章重点介绍了多线程编程方面的内容,但大部分内容只涉及多线程、互斥量、条件变量和异步编程相关的 API,C++11 程序员完全可以不必知道这些 API 在底层是如何实现的,只需要清楚 C++11 多线程和异步编程相关 API 的语义,然后熟加练习即可应付大部分多线程编码需求。但是在很多极端的场合下为了性能和效率,我们需要开发一些 lock-free 的算法和转载 2017-02-28 00:19:27 · 330 阅读 · 0 评论 -
C++11 并发指南四(<future> 详解三 std::future & std::shared_future)
上一讲《C++11 并发指南四( 详解二 std::packaged_task 介绍)》主要介绍了 头文件中的 std::packaged_task 类,本文主要介绍 std::future,std::shared_future 以及 std::future_error,另外还会介绍 头文件中的 std::async,std::future_category 函数以及相关枚举类型。st转载 2017-02-28 00:14:49 · 476 阅读 · 0 评论 -
C++11 并发指南四(<future> 详解二 std::packaged_task 介绍)
上一讲《C++11 并发指南四( 详解一 std::promise 介绍)》主要介绍了 头文件中的 std::promise 类,本文主要介绍std::packaged_task。std::packaged_task 包装一个可调用的对象,并且允许异步获取该可调用对象产生的结果,从包装可调用对象意义上来讲,std::packaged_task 与 std::function 类似,只不过 s转载 2017-02-27 23:55:46 · 1879 阅读 · 0 评论 -
C++11 并发指南四(<future> 详解一 std::promise 介绍)
前面两讲《C++11 并发指南二(std::thread 详解)》,《C++11 并发指南三(std::mutex 详解)》分别介绍了 std::thread 和 std::mutex,相信读者对 C++11 中的多线程编程有了一个最基本的认识,本文将介绍 C++11 标准中 头文件里面的类和相关函数。 头文件中包含了以下几个类和函数:Providers 类:std::promi转载 2017-02-27 23:54:58 · 765 阅读 · 0 评论 -
C++11 并发指南二(std::thread 详解)
上一篇博客《C++11 并发指南一(C++11 多线程初探)》中只是提到了 std::thread 的基本用法,并给出了一个最简单的例子,本文将稍微详细地介绍 std::thread 的用法。std::thread 在 头文件中声明,因此使用 std::thread 时需要包含 头文件。std::thread 构造default (1)thread() noex转载 2017-02-27 23:51:41 · 1646 阅读 · 0 评论 -
C++11 并发指南六(atomic 类型详解三 std::atomic (续))
C++11 并发指南六( 类型详解二 std::atomic ) 介绍了基本的原子类型 std::atomic 的用法,本节我会给大家介绍C++11 标准库中的 std::atomic 针对整形(integral)和指针类型的特化版本做了哪些改进。总地来说,C++11 标准库中的 std::atomic 针对整形(integral)和指针类型的特化版本新增了一些算术运算和逻辑运算操作。具体如转载 2017-02-28 00:25:13 · 514 阅读 · 0 评论 -
C++11 并发指南六(atomic 类型详解四 C 风格原子操作介绍)
前面三篇文章《C++11 并发指南六(atomic 类型详解一 atomic_flag 介绍)》、《C++11 并发指南六( 类型详解二 std::atomic )》、《C++11 并发指南六(atomic 类型详解三 std::atomic (续))》都是采用 C++ 的方式介绍原子对象,本节我会给大家介绍 C++11 原子操作中 C 风格的 API。总地来说,C++11 标准中规定了转载 2017-02-28 00:26:13 · 1515 阅读 · 0 评论 -
C++11 并发指南七(C++11 内存模型一:介绍)
第六章主要介绍了 C++11 中的原子类型及其相关的API,原子类型的大多数 API 都需要程序员提供一个 std::memory_order(可译为内存序,访存顺序) 的枚举类型值作为参数,比如:atomic_store,atomic_load,atomic_exchange,atomic_compare_exchange 等 API 的最后一个形参为 std::memory_order o转载 2017-02-28 00:29:36 · 382 阅读 · 0 评论 -
C++11 并发指南九(综合运用: C++11 多线程下生产者消费者模型详解)
前面八章介绍了 C++11 并发编程的基础(抱歉哈,第五章-第八章还在草稿中),本文将综合运用 C++11 中的新的基础设施(主要是多线程、锁、条件变量)来阐述一个经典问题——生产者消费者模型,并给出完整的解决方案。生产者消费者问题是多线程并发中一个非常经典的问题,相信学过操作系统课程的同学都清楚这个问题的根源。本文将就四种情况分析并介绍生产者和消费者问题,它们分别是:单生产者-单消费者模型,转载 2017-02-28 00:31:43 · 496 阅读 · 0 评论 -
c++11 std::bind与std::function
function模板类和bind模板函数,使用它们可以实现类似函数指针的功能,但却比函数指针更加灵活,特别是函数指向类的非静态成员函数时。std::function可以绑定到全局函数/类静态成员函数(类静态成员函数与全局函数没有区别),如果要绑定到类的非静态成员函数,则需要使用std::bind。标准库函数bind()和function()定义于头文件中(该头文件还包括许多其他函数转载 2017-03-01 20:00:30 · 556 阅读 · 0 评论 -
C++11 并发指南三(Lock 详解)
在 《C++11 并发指南三(std::mutex 详解)》一文中我们主要介绍了 C++11 标准中的互斥量(Mutex),并简单介绍了一下两种锁类型。本节将详细介绍一下 C++11 标准的锁类型。C++11 标准为我们提供了两种基本的锁类型,分别如下:std::lock_guard,与 Mutex RAII 相关,方便线程对互斥量上锁。std::unique_lock,与 Mutex转载 2017-02-27 23:54:39 · 2029 阅读 · 0 评论 -
C++11 并发指南三(std::mutex 详解)
上一篇《C++11 并发指南二(std::thread 详解)》中主要讲到了 std::thread 的一些用法,并给出了两个小例子,本文将介绍 std::mutex 的用法。Mutex 又称互斥量,C++ 11中与 Mutex 相关的类(包括锁类型)和函数都声明在 头文件中,所以如果你需要使用 std::mutex,就必须包含 头文件。 头文件介绍Mutex 系列类(四种)转载 2017-02-27 23:51:58 · 2695 阅读 · 0 评论 -
基于C++11的线程池
源代码地址:http://files.cnblogs.com/magicsoar/ThreadPoolProject.rar*需要C++11的支持,在vs2013下编译通过运行效果 背景在传统的收到任务即创建线程的情况下,我们每收到一个任务,就创建一个线程,执行任务,销毁线程,我们把这三个过程所用的时间分别记做T1,T2,T3任务本身所用的时间仅占T2/(T1+T2转载 2017-02-27 23:42:50 · 312 阅读 · 0 评论 -
std::ref, std::cref
Defined in header templateclass T>std::reference_wrapperT> ref(T& t);(1)(since C++11)templateclass T>std::reference_wrapperT> ref(std::reference_wrapperT>原创 2017-03-01 22:19:08 · 1172 阅读 · 0 评论