陈硕的 Blog

吾尝终日而思矣,不如须臾之所学也。吾尝跂而望矣,不如登高之博见也。……君子生非异也,善假于物也。

多线程

C++ 多线程系统编程精要
摘要: 这是一套紧凑的 PPT,基本上每一张幻灯片都可以单独写一篇博客,但是我没有那么多时间一一展开论述,只能把结论和主要论据列了出来。阅读全文

posted @ 2011-02-12 18:51 陈硕 阅读(3807) | 评论 (4) 编辑

并发编程的 15 条建议(译)
摘要: 内核专家 Bryan Cantrill 和 Jeff Bonwick 在 2008 年 9 月的《ACM Queue》上发表了《Real-world Concurrency》 一文,提出了 15 条并发编程的建议。阅读全文

posted @ 2010-09-29 23:57 陈硕 阅读(4034) | 评论 (14) 编辑

发布一个 Linux 下的 C++ 多线程库
摘要: 发布一个我自己业余时间编写的 C++ 多线程库 for Linux,这个库只有不到 1000 行源代码,封装了 pthreads 的常用功能(互斥器、条件变量、线程),实现了简单的线程池,并仿照 java concurrent 包编写了 BlockingQueue 和 CountDownLatch。库里的每个 class 都提供了使用样例。阅读全文

posted @ 2010-08-21 23:49 陈硕 阅读(2356) | 评论 (6) 编辑

《多线程服务器的适用场合》例释与答疑
摘要: 这篇文章用一些实例(memcached,MySQL,PgSQL,http proxy)来解答读者关于《多线程服务器的适用场合》的疑问,包括“多线程程序如何让 IO 和“计算”相互重叠,降低 latency?”、“为什么第三方库往往要用自己的线程?”等等阅读全文

posted @ 2010-03-03 19:58 陈硕 阅读(2318) | 评论 (4) 编辑

多线程服务器的适用场合
摘要: 多线程的适用场景是:提高响应速度,让 IO 和“计算”相互重叠,降低 latency。 虽然多线程不能提高绝对性能,但能提高平均响应性能。 在多核时代,多线程编程是不可避免的,“鸵鸟算法”不是办法。阅读全文

posted @ 2010-02-28 21:32 陈硕 阅读(3273) | 评论 (5) 编辑

多线程服务器的常用编程模型
摘要: 本文主要讲我个人在多线程开发方面的一些粗浅经验。总结了一两种常用的线程模型,归纳了进程间通讯与线程同步的最佳实践,以期用简单规范的方式开发多线程程序。万字长文,慎入,有 PDF 版下载: http://files.cppblog.com/Solstice/multithreaded_server.pdf阅读全文

posted @ 2010-02-12 17:00 陈硕 阅读(7648) | 评论 (12) 编辑

当析构函数遇到多线程 ── C++ 中线程安全的对象回调
摘要: 编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的互斥器来保护。如何保证即将析构对象 x 的时候,不会有另一个线程正在调用 x 的成员函数?或者说,如何保证在执行 x 的成员函数期间,对象 x 不会在另一个线程被析构?如何避免这种竞态条件是 C++ 多线程编程面临的基本问题,可以借助 boost 的 shared_ptr 和 weak_ptr 完美解决。这也是实现线程安全的 Observer 模式的必备技术。全文 1 万 2 千余字,有 PDF 版下载: http://www.cppblog.com/Files/Solstice/dtor_meets_mt.pdf阅读全文

posted @ 2010-02-10 08:22 陈硕 阅读(4650) | 评论 (3) 编辑

导航

统计

公告