01 2023 档案

摘要:背包问题学习记录,参考dd大牛的背包九讲:https://www.cnblogs.com/jbelial/articles/2116074.html 阅读全文
posted @ 2023-01-19 17:15 ^江流儿^ 阅读(58) 评论(0) 推荐(0) 编辑
摘要:cmake的基本使用以及cmake和vscode中launch.json,tasks.json的组合拳 阅读全文
posted @ 2023-01-17 18:24 ^江流儿^ 阅读(160) 评论(0) 推荐(0) 编辑
摘要:等待一个事件 在多线程开发中,当一个线程的运行条件是另外一个线程的运算结果的时间,等待线程通常有几种处理方法1. 循环查询,知道满足条件为止 2. 休眠一个固定的时间,然后查询条件,当不满足的时候再继续休眠相同时间,知道下一次查询满足条件 3. 使用条件变量 下面分别对后两种方法进行阐述 休眠固定时 阅读全文
posted @ 2023-01-10 16:56 ^江流儿^ 阅读(23) 评论(0) 推荐(0) 编辑
摘要:保护共享数据的替代措施 互斥量是保护数据的一种通用错失,但并不是唯一错失,这里有很多的替代方法可以在一些特定的情况下,提供更加合适的保护 共享数据初始化过程的保护 假设对于一个共享源,构造的代价非常昂贵,在单线程中,通常采用延迟初始化的方法例子如下; shard_ptr<resource> reso 阅读全文
posted @ 2023-01-10 16:12 ^江流儿^ 阅读(44) 评论(0) 推荐(0) 编辑
摘要:使用互斥量保护共享数据 C++中使用互斥量 C++通过实例化std::mutex创建互斥量,通过调用成员函数lock()进行加锁,unlock()进行解锁,在实践中不推荐直接调用成员函数,因为调用成员函数就意味着,必须记住在每个函数的出口都需要调用unlock(),同时包括异常的情况,C++中推荐使 阅读全文
posted @ 2023-01-10 15:40 ^江流儿^ 阅读(47) 评论(0) 推荐(0) 编辑
摘要:识别线程 线程表示类型为std::id可以通过两种方式进行检索 第一种可以通过std::thread 的对象成员函数get_id()来直接获取 第二种是在当前线程中调用std::get_id() void func(){ cout<<"print id in son process"<<std::t 阅读全文
posted @ 2023-01-03 17:29 ^江流儿^ 阅读(30) 评论(0) 推荐(0) 编辑
摘要:转移线程的所有权 C++中有很多资源占用类型,例如std::ifstream,std::unique_ptr,std::thread都是可以移动,但是不能拷贝的 void func1(); void func2(); std::thread t1(func1); std::thread t2 = s 阅读全文
posted @ 2023-01-03 16:55 ^江流儿^ 阅读(30) 评论(0) 推荐(0) 编辑
摘要:向线程函数传递参数 参数传递的基本形式如下所示: void f(int , std::string const & s); std::thread(f,3,"hello") std::thread 对传入的参数默认行为是复制,即使函数的形参是引用: void update_data_widget(w 阅读全文
posted @ 2023-01-03 16:31 ^江流儿^ 阅读(104) 评论(0) 推荐(0) 编辑
摘要:线程管理的基础 每个程序至少都有一个线程 各自线程都有自己的入口函数 其他线程和main函数线程同时运行 启动线程 线程在std::thread对象创建时启动 void do_some_work(); std::thread my_thread(do_some_work); 除了直接使用函数之外,仿 阅读全文
posted @ 2023-01-02 22:05 ^江流儿^ 阅读(46) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.