多线程编程
AC_hell
这个作者很懒,什么都没留下…
展开
-
C++多线程入门
一.概念在讲解多线程之前,有些概念还是有必要了解清楚的。这里详细地讲解了一下,请先耐心看完。当然,我也是刚入门,只是叙述一下我的理解,如有错误还望海涵,OS大牛也可以直接跳过。①程序,进程,线程的区别程序:程序是由一系列的指令和逻辑组成的一个静态文件(如cpp文件),无论能不能运行,它都客观的存在于储存器中。进程:进程是计算机中的程序关于某数据集合上的一次运行活动,是系原创 2016-12-14 11:58:32 · 9250 阅读 · 7 评论 -
我对Reactor,Proactor模式的一点理解
之前便简单使用过了 Boost.Asio 异步 I/O 库,一直很都好奇诸如 async_read() 之类的异步函数是如何来实现的,于是我就开始了疯狂地找资料。 从重新理解同步,异步,阻塞,非阻塞到重温 Linux 下5种经典的 I/O 模型,然后我找到了 Reactor,Proactor 这两个模式。往下读之前希望您已经认识了各种 I/O原创 2017-05-26 23:09:10 · 885 阅读 · 1 评论 -
C++11之future,promise,packaged_task,async详解
C++11为了给我们提供更便利的并发编程,加入了 future,promise,packaged_task,async 这几个新特性,那么它们到底有什么作用又能给我们带来哪些便利呢?经典的生产-消费模型mutex + condition_variable:首先让我们来看一个最经典的生产-消费模型:#include #include #include #includ原创 2017-05-27 11:34:15 · 9698 阅读 · 3 评论 -
使用boost::shared_mutex实现读写锁
伟大的Boost库给我们提供了 shared_mutex 类,结合 unique_lock 与 shared_lock 的使用,可以实现读写锁。通常读写锁需要完成以下功能:1.当 data 被线程A读取时,其他线程仍可以进行读取却不能写入2.当 data 被线程A写入时,其他线程既不能读取也不能写入对应于功能1,2我们可以这样来描述:1.当线程A获得共享锁时,原创 2017-05-22 19:48:52 · 9810 阅读 · 2 评论