
Linux多线程编程
惜朝_
这个作者很懒,什么都没留下…
展开
-
shared_ptr实现copy-on-write
最近再看陈硕的《Linux多线程服务端编程使用muduoC++网络库》,2.8节看到这个内容:使用shared_ptr实现copy-on-write的手法降低锁竞争。目的: 利用普通mutex替换读写锁shared_ptr是引用技术型智能指针,当只有一个观察者时,引用计数为1。对于write端,如果发现引用计数为1(即当前只有自己持有智能指针),那可以加锁后安全的修改。如果大于1,则需...原创 2018-04-10 19:21:05 · 567 阅读 · 0 评论 -
Golang 高性能网络库 evio 源码解析
原文链接: https://note.mogutou.xyz/articles/2019/08/06/1565053139105.html阅读前提:了解 epollevio 是一个基于事件驱动的网络框架,它非常轻量而且相比 Go net 标准库更快。其底层使用epoll 和 kqueue 系统调度实现。原理evio 是 Reactor 模式的简单实现。Reactor 本质就是“non...原创 2019-08-16 19:13:07 · 3748 阅读 · 0 评论 -
Golang 网络库 evio 一些问题/bug和思考
原文链接:https://note.mogutou.xyz/articles/2019/08/15/1565876205121.htmlFast event-loop networking for Go最近翻了 evio 的源码,发现一些问题,主要集中在 linux 平台 epoll 上和读写的处理。用来唤醒 epoll 的 eventfd 写入数据没有读出listen 的 fd 注...原创 2019-08-16 19:15:18 · 2053 阅读 · 0 评论