自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 资源 (6)
  • 收藏
  • 关注

原创 C++ 11 的std::atomic操作

0. 简单应用所谓的原子操作,取的就是“原子是最小的、不可分割的最小个体”的意义,它表示在多个线程访问同一个全局资源的时候,能够确保所有其他的线程都不在同一时间内访问相同的资源。也就是他确保了在同一时刻只有唯一的线程对这个资源进行访问。这有点类似互斥对象对共享资源的访问的保护,但是原子操作更加接近底层,因而效率更高。在以往的C++标准中并没有对原子操作进行规定,我们往往是使用汇编语言,或者是借...

2019-05-31 21:11:31 8245 1

原创 C++11中std::lock_guard和std::unique_lock的使用

1. 原理在互斥类最重要的成员函数是lock()和unlock。通常在进入临界区时,需要进行加锁操作,在退出临界区时,进行解锁操作。更好的办法是采用**”资源分配时初始化”(RAII)方法来加锁、解锁**,这避免了在临界区中因为抛出异常或return等操作导致没有解锁就退出的问题。std::lock_guard类模板做mutex的RAII, 避免因为return或者异常导致的解锁失败而导致资源...

2019-05-31 20:32:20 1515

原创 C++11的move语义

1. 基本原理std::move函数可以以非常简单的方式将左值引用转换为右值引用。通过std::move,可以避免不必要的拷贝操作。std::move是为性能而生。std::move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存的搬迁或者内存拷贝。2. 例子如string类在赋值或者拷贝构造函数中会声明char数组来存放数据,然后把原string中的 char ...

2019-05-29 23:10:01 559

原创 C++ 11 promise future

1. 简单用例future和promise的作用是在不同线程之间传递数据。简单的例子:假设线程1需要线程2的数据,那么组合使用方式如下:线程1初始化一个promise对象和一个future对象, promise传递给线程2, 相当于线程2对线程1的一个承诺,future相当于一个接受一个承诺,用来获取未来线程2传递的值。如果值未返回,则一直会阻塞。#include <iostr...

2019-05-28 00:33:50 1135

jdk-8u111-linux-x64.zip

jdk-8u111-linux-x64.tar.gz.

2019-06-10

mysql-5.6.26.7z

mysql-5.6.26.tar.gz 下载下载.

2019-06-09

TCP-IP详解卷1

这本书是学习TCP/IP协议的经典,是初学者学习的最好的入门资料。

2012-06-27

嵌入式WEB服务器及远程测控应用详解

重点描述了在嵌入式Linux系统上搭建Web服务器,通过Web的方式控制和检测资源。物联网。

2012-06-27

Java学习手册光盘

里面的资源很全,代码很实用。对学习Java编程的人,很实用。

2012-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除