
C++多线程
HW140701
这个作者很懒,什么都没留下…
展开
-
C++11/std::atomic - 原子变量(不加锁实现线程互斥)
1 原子操作原子操作:一个独立不可分割的操作。多线程编程需要保证线程安全,而线程安全一个很重要的特性就是原子性,即在同一时刻只有一个线程对原子进行操作,保证数据访问的互斥性。2 C++11原子变量C++11提供了原子类型std::atomic,可以使用任意的类型作为模板参数。在多线程中如果使用了原子变量,其本身就保证了数据访问的互斥性,所以不需要使用互斥量来保护该变量了。3 使用原子变量...原创 2020-04-02 13:31:25 · 13478 阅读 · 8 评论 -
C++11/std::condition_variable - 生产者消费者模型
代码示例:#include <iostream> #include <thread> #include <chrono> #include <mutex>#include <deque>#include <condition_variable>std::deq...原创 2020-04-01 17:45:25 · 632 阅读 · 0 评论 -
C++11/std::thread - 线程的基本用法
1 获取CPU核心数量使用std::thread::hardware_concurrency()获取当前CPU核心数量。代码示例:#include <iostream>#include <thread>int main(){ std::cout << std::thread::hardware_concurrency() <<...原创 2020-04-01 11:59:20 · 1241 阅读 · 0 评论 -
C++11/std::thread - 线程管理join/detach
1 join方法代码示例:#include <iostream>#include <thread>void HelloWorld(){ std::cout << "hello world" << std::endl;}int main(){ std::thread helloWorldThread(HelloWor...原创 2020-04-01 11:46:11 · 1221 阅读 · 0 评论 -
C++11/std::thread - 可作为线程函数的几种方式总结
1 使用普通的函数作为线程函数代码示例:#include <iostream>#include <thread>void ThreadFunction(){ std::cout<< "线程函数被启动" << std::endl;}int main(){ std::thread thread(ThreadFunct...原创 2020-04-01 10:45:15 · 3351 阅读 · 0 评论