摘要: 线程间同步也是十分常见的场景,可以选择的方法: 1. 一直检查变量的值,看任务是否完成。但这个方法有很多弊端(线程需要占用cpu的处理时间,而且检查变量需要拿互斥锁) 2. 周期检查变量的值(sleep 一段时间) 弊端:a. sleep时间的设置, 3. c++标准提供了条件变量和futures来 阅读全文
posted @ 2019-06-12 14:48 雨异奇 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 一 线程间数据共享的问题 1. 线程间数据共享带来了很多好处,但同时也有很多问题。而问题的根源在于对数据的修改. 在并行编程中,一个常见的场景就时:条件竞争( race condition); 2. 避免条件竞争的方法: a. 保护机制 b. 将change变为不可分割的changes (lock- 阅读全文
posted @ 2019-05-10 13:06 雨异奇 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 一、线程的启动 1. 每个c++程序至少有一个线程,是由C++ runtime启动的 2. 在c++11中,通过一个std::thread 对象启动线程。可以向std::thread传递一个函数,或者实现了调用操作符的类实例, 或者一个lambda表达式。 传递给std::thread的函数对象,会 阅读全文
posted @ 2019-04-23 20:06 雨异奇 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是并发通俗来说,并发指两个或者多个独立的事件(活动)同时发生。比如,一边走路一边说话,两个手同时做不同的事情。计算机系统的并发是指一个系统并行处理多个独立的事件(活动), 而不是按顺序或者一个接一个的处理。 在单处理器单核系统中通过task switching的方式实现并发。在多处理器或者 阅读全文
posted @ 2019-04-20 19:12 雨异奇 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 计算广告相关的论文: https://github.com/wnzhang/rtb-papers/ https://github.com/wzhe06/Ad-papers https://www.zhihu.com/question/25566638 知名会议期刊 https://www.zhihu 阅读全文
posted @ 2019-04-17 15:36 雨异奇 阅读(168) 评论(0) 推荐(0) 编辑