摘要://(1)原子操作std::atomic续谈 // 原子操作针对++,--,+=,-=,&=,|=,~=是支持的,其他的可能不支持。 #include<iostream> #include<mutex> #include<thread> #include<future> using namespac
阅读全文
摘要://(1)std::future的其他成员函数 #include<iostream> #include<mutex> #include<thread> #include<future> using namespace std; int my_thread() { cout << "my_thread
阅读全文
摘要://(1)std::async、 std::future创建后台任务并返回值 // async是一个函数模板,用来启动一个异步任务,返回一个future类型的对象。用future // 的get方法来获得线程的返回值。 // 异步任务:自动创建一个线程,并开始执行对应线程的入口函数。 #includ
阅读全文
摘要:/*condition_variable、wait、notify_one、notify_all*/ //(1)条件变量std::condition_variable()、wait()、notify_one()// std::condition_variable()是一个类,需要和互斥量配合工作。 #
阅读全文
摘要:/* 在一个长度位n的数组里面所有的数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道 每个数字重复了几次。找到数组中任意一个重复的数字。例如,如果 输入长度为7的数组{2,3,1,0,2,5,3},那么对应的重复数组就是2或者3. */ /* 解法1:利用一个
阅读全文
摘要:在32位机器上,以下程序的输出结果是: #include<iostream> using namespace std; int GetSize(int data[]) { return sizeof(data); } int main() { int data1[] = { 1,2,3,4,5 };
阅读全文
摘要://(1)设计模式大概谈 // 使得程序灵活,但是代码阅读非常的晦涩。 //(2)单例设计模式 // 使用频率比较高。只能创建一个对象。 #include<iostream> using namespace std; class MyCAS { private: MyCAS() {}; //私有化构
阅读全文
摘要://(1)unique_lock取代lock_guard,unique_lock是一个类模板,比lock_guard更加灵活。// lock_guard取代了mutex的lock()和unlock()。unique_lock比lock_guard效率低一点,内存占用多一些。 #include<ios
阅读全文
摘要://(1)互斥量的(mutex)的基本概念 // 就是一个类的对象。多个线程可以尝试对一个mutex的对象进行lock,但是只有一个线程成功,其他线程需要等待。 //(2)互斥量的用法 //(2.1)lock(), unlock():要成对使用 #include<iostream> #include
阅读全文
摘要:实现单例模式 只能生成一个实例的类是实现了单例模式的类型 //(1)只适合单线程环境的的单例模式实现 class Singleton { private: Singleton(); ~Singleton(); Singleton(const Singleton&); Singleton& opera
阅读全文