上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 41 下一页
摘要: 多线程 多个线程等待一个线程的一次性事件 背景:从多个线程访问同一个std::future,也就是多个线程都在等待同一个线程的结果,这时怎么处理。 办法:由于std::future只能被调用一次get方法,也就是只能被某一个线程等待(同步)一次,不支持被多个线程等待。所以std::sharted_f 阅读全文
posted @ 2018-11-27 22:24 小石王 阅读(1708) 评论(0) 推荐(0) 编辑
摘要: 多线程 等待一次性事件 异常处理 背景:假设某个future在等待另一个线程结束,但是在被future等待的线程里发生了异常(throw一个异常A),这时怎么处理。 结果:假设发生了上面的场景,则在调用future的get方法时,就会得到被future等待的线程抛出的异常A。 3种情况: 1,std 阅读全文
posted @ 2018-11-26 22:39 小石王 阅读(1398) 评论(0) 推荐(0) 编辑
摘要: 多线程 等待一次性事件 std::promise用法 背景:不是很明白,不知道为了解决什么业务场景,感觉std::async可以优雅的搞定一切的一次等待性事件,为什么还有个std::promise。 用法:和std::async一样,也能够返回std::future,通过调用get_future方法 阅读全文
posted @ 2018-11-25 17:08 小石王 阅读(2001) 评论(0) 推荐(0) 编辑
摘要: 多线程 等待一次性事件 packaged_task用法 背景:不是很明白,不知道为了解决什么业务场景,感觉std::asynck可以优雅的搞定一切,一次等待性事件,为什么还有个packaged_task。 用法:和std::async一样,也能够返回std::future,通过调用get_futur 阅读全文
posted @ 2018-11-24 23:55 小石王 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: 多线程 等待一次性事件 future概念 背景:有时候,一个线程只等待另一个线程一次,而且需要它等待的线程的返回值。 案例:滴滴叫车时,点完了叫车按钮后,叫车的后台线程就启动了,去通知周围的出租车。这时,用户就可以去干别的了,而且用户只等待叫车的线程一次就够了,也就是有出租车应答了,这个等待就结束了 阅读全文
posted @ 2018-11-20 21:49 小石王 阅读(1942) 评论(0) 推荐(0) 编辑
摘要: 多线程 利用条件变量实现线程安全的队列 背景:标准STL库的队列queue是线程不安全的。 利用条件变量(Condition variable)简单实现一个线程安全的队列。 代码: c++ include include include include include include templat 阅读全文
posted @ 2018-11-19 07:51 小石王 阅读(4029) 评论(0) 推荐(0) 编辑
摘要: 多线程 一个线程等待某种事件发生 背景:某个线程在能够完成其任务之前可能需要等待另一个线程完成其任务。 例如:坐夜间列车,为了能够不坐过站, 1,整夜保持清醒,但是这样你就会非常累,不能够睡觉。 2,如果你知道几点会到你要下车的站,就可以提前定个闹钟,然后睡觉等待闹钟叫醒你,但是如果车中间有延误,闹 阅读全文
posted @ 2018-11-18 10:38 小石王 阅读(13614) 评论(2) 推荐(1) 编辑
摘要: 多线程 boost的读写(reader writer)锁 背景:保护很少更新的数据结构时,c++标准库没有提供相应的功能。 例如:有个DNS条目缓存的map,基本上很少有更新,大部分都是读取,但是偶尔也会有更新,这种情况下,如果在读取的函数里加上std::mutex就过于悲观了,每次只能有一个线程读 阅读全文
posted @ 2018-11-12 08:35 小石王 阅读(1854) 评论(0) 推荐(0) 编辑
摘要: 多线程 boost编译与运行的坑 背景:因为要使用boost里的多线程库,所以遇到了下面的坑。 系统版本:ubuntu18.04 一,安装boost 1,去boost "官网" 下载 boost_1_XX_0.tar.gz 2,解压 3,进去解压后的文件夹 4,编译 5,安装 注意:安装完成后,会有 阅读全文
posted @ 2018-11-11 23:15 小石王 阅读(3411) 评论(0) 推荐(0) 编辑
摘要: 多线程 std::call_once的应用 std::call_once的应用:类成员的延迟初始化,并只初始化一次。和static的作用很像,都要求是线程安全的,c++11之前在多线程的环境下,static好像不是线程安全的,c++11开始,static是线程安全的了。 注意:即使某一个特定的线程里 阅读全文
posted @ 2018-11-06 22:32 小石王 阅读(1942) 评论(0) 推荐(0) 编辑
上一页 1 ··· 21 22 23 24 25 26 27 28 29 ··· 41 下一页