多线程
codeducker
逢山开路,遇水架桥
展开
-
多线程学习笔记6
std::shared_future这个对象的get()可以调用多次int run1( ){ cout<<"thread_id : "<<std::this_thread::get_id()<<endl; for(int i=1;i<=1e2;i++){ cout<<1; } std::chrono::seconds dura(2);//等待5秒 std::this_thread::sleep_for(dura);//休息dura原创 2021-08-23 00:06:08 · 122 阅读 · 0 评论 -
多线程学习笔记5
std::asyncstd::future#include<future>std::async是一个函数模板 , 用来启用一个异步任务 , 启动起来之后 , 返回一个std::future(类模板)对象启动一个异步任务 : 创建一个线程并开始执行对应的线程入口函数 , 返回一个std::future对象std::future里面就含有线程入口函数返回的结果( 线程返回结果 ) , 我们通过调用它的成员函数get()来获取std::future提供了一种访问异步操作结果的机制原创 2021-08-17 21:31:52 · 128 阅读 · 0 评论 -
多线程学习笔记4
std::condition_variablenotify_one()waitclass A{public: std::unique_lock<std::mutex> my_move(){ std::unique_lock<std::mutex> tem(my_mutex1); return tem; } void inmRQ(){ for(int i=1;i<=100000000;i++){ cout<<原创 2021-08-13 21:50:22 · 163 阅读 · 0 评论 -
多线程学习笔记3
std::lock()一次锁住>=2个互斥量 (谨慎使用)它不存在因为多个线程因为锁的顺序而导致的死锁风险只有同时锁住才会继续向下执行(要么都锁住,要么都不锁)std::lock(my_mutex1,my_mutex2,..);my_mutex1.unlock();//解锁还是要继续写my_mutex2.unlock();std::adopt_lock在用这个参数前,我们一定要记得先lockstd::lock()与std::lock_guard结合使用有了std::adop原创 2021-08-11 23:47:52 · 134 阅读 · 0 评论 -
多线程学习笔记2
创建多个线程vector<thread> g;void myjob(int num){ cout<<num<<endl;}for(int i=1;i<=10;i++){ g.push_back(thread (myjob,i));}for(auto item=g.begin();item!=g.end();item++){ item->join();}线程执行的顺序是乱的 , 这与操作系统内部对线程的运行调度机制有关数据共享原创 2021-08-10 21:46:03 · 230 阅读 · 0 评论 -
多线程学习笔记1
多线程注 : 看着视频教程的手写笔记 , 如有错误 , 评论更正#include<iostream>#include<cstdio>#include<thread>#include<stdlib.h> using namespace std;void myprint(){ cout<<"子线程开始了"<<endl; cout<<"子线程结束了"<<endl;}int ma原创 2021-08-09 00:02:30 · 319 阅读 · 0 评论