主页

C++11新特性之互斥锁包装器

lock_guard管理类 #include <mutex> template< class Mutex > class lock_guard; 类 lock_guard 是互斥体包装器,为在作用域块期间占有互斥提供便利 RAII 风格机制。 创建 lock_guard 对象时,它试图接收给定互斥的所有权。控制离开创建 lock_guard 对象的作用域时,销毁 lock_guard 并释放互斥。 lock_guard 类不可复制。 模板形参 Mutex - 要锁定的互斥。 成员类型 成员类型 定义 mutex_type Mutex ...

阅读更多

C++11新特性之thread线程

概述 #include <thread> class std::thread; std::thread 是C++11 新增的线程支持库的线程类,类 thread 表示单个执行线程。线程允许多个函数同时执行。 线程在构造关联的线程对象时立即开始执行(等待任何OS调度延迟),从提供给作为构造函数参数的顶层函数开始。顶层函数的返回值将被忽略,而且若它以抛异常终止,则调用 std::terminate 。顶层函数可以通过 std::promise 或通过修改共享变量(可能需要同步,见 std::mutex 与 std::atomic )将其返回值或异常传递给调用方。 成员类型 成员类型 : native_handle_type 成员类 class thread::i...

阅读更多

C++11新特性之recursive_mutex互斥锁

概述 #include <mutex> class std::recursive_mutex; recursive_mutex 类是同步原语,能用于保护共享数据免受从个多线程同时访问。 recursive_mutex 提供排他性递归所有权语义: 调用方线程在从它成功调用 lock 或 try_lock 开始的时期里占有 recursive_mutex 。此时期间,线程可以进行对 lock 或 try_lock 的附加调用。所有权的时期在线程调用 unlock 匹配次数时结束。 线程占有 recursive_mutex 时,若其他所有线程试图要求 recursive_mutex 的所有权,则它们将阻塞(对于调用 lock )或收到 false 返回值(对于...

阅读更多

C++11新特性之mutex互斥锁

概述 #include <mutex> class std::mutex; mutex 提供排他性非递归所有权语义: 调用方线程从它成功调用 lock 或 try_lock 开始,到它调用 unlock 为止占有 mutex 。 线程占有 mutex 时,所有其他线程若试图要求 mutex 的所有权,则将阻塞(对于 lock 的调用)或收到 false 返回值(对于 try_lock ). 调用方线程在调用 lock 或 try_lock 前必须不占有 mutex 。 若 mutex 在仍为任何线程所占有时即被销毁,或在占有 mutex 时线程终止,则行为未定义。 std::mutex 既不可复制亦不可移动。 成员类型 成员类型 : nativ...

阅读更多

C++11新特性之condition_variable条件变量

概述 #include <condition_variable> class std::condition_variable; std::condition_variable是C++11才新增的线程支持库中的类,定义于头文件<condition_variable>。类似于POSIX线程中pthread_cond_t变量和pthread_cond_*()系列函数的功能。 condition_variable类是同步原语,能用于阻塞一个线程,或同时阻塞多个线程,直至另一线程修改共享变量(条件)并通知condition_variable。 阻塞在前,通知在后。condition_variable类和互斥锁std::mutex、std::unique_lock&...

阅读更多

代码格式化工具astyle的安装和使用

简介 AStyle,即 Artistic Style,是一个可用于 C, C++, C++/CLI, Objective‑C, C# 和Java编程语言格式化和美化的工具。 下载 1、Astyle官网下载地址:https://sourceforge.net/projects/astyle 2、Astyle官方文档地址:http://astyle.sourceforge.net/astyle.html 3、Astyle风格设置:参考《Google 开源项目 c/c++风格》 安装 windows windows下有二进制文件,直接下载,解压后,把二进制程序加入环境变量即可。 linux Linux下需要自己下载源码,编译安装。 解压到指定目录 在...

阅读更多

GCC编译

编译流程 预处理 Pre-Processing 展开头文件、宏替换、去掉注释、条件编译 编译 Compiling 检查语法,生成汇编 汇编 Assembling 汇编代码转换为二进制机器码 链接 Linking 选项 GCC & G++编译选项 -E :输出预处理后的文件 g++ -E xxx.cpp > xxx.txt -S : 生成编译后的汇编文件 g++ -S xxx.cpp -c : 生成.o二进制目标文件 g++ -c xxx.cpp -shared :该选项指定生成动态连接库 -shared :...

阅读更多

Welcome

If you see this page, that means you have setup your site. enjoy! :ghost: :ghost: :ghost: You may want to config the site or writing a post next. Please feel free to create an issue or send me email if you have any questions.

阅读更多