左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家,骨灰级程序员
立即订阅
40357 人已学习
课程目录
已完结 108 讲
0/6登录后,你可以任选6讲全文学习。
开篇词 | 洞悉技术的本质,享受科技的乐趣
免费
01 | 程序员如何用技术变现(上)
02 | 程序员如何用技术变现(下)
03 | Equifax信息泄露始末
04 | 从Equifax信息泄露看数据安全
05 | 何为技术领导力?
06 | 如何才能拥有技术领导力?
07 | 推荐阅读:每个程序员都该知道的知识
08 | Go语言,Docker和新技术
09 | 答疑解惑:渴望、热情和选择
10 | 如何成为一个大家愿意追随的Leader?
11 | 程序中的错误处理:错误返回码和异常捕捉
12 | 程序中的错误处理:异步编程以及我的最佳实践
13 | 魔数 0x5f3759df
14 | 推荐阅读:机器学习101
15 | 时间管理:同扭曲时间的事儿抗争
16 | 时间管理:如何利用好自己的时间?
17 | 故障处理最佳实践:应对故障
18 | 故障处理最佳实践:故障改进
19 | 答疑解惑:我们应该能够识别的表象和本质
20 | Git协同工作流,你该怎么选?
21 | 分布式系统架构的冰与火
22 | 从亚马逊的实践,谈分布式系统的难点
23 | 分布式系统的技术栈
24 | 分布式系统关键技术:全栈监控
25 | 分布式系统关键技术:服务调度
26 | 分布式系统关键技术:流量与数据调度
27 | 洞悉PaaS平台的本质
28 | 推荐阅读:分布式系统架构经典资料
29 | 推荐阅读:分布式数据调度相关论文
30 | 编程范式游记(1)- 起源
31 | 编程范式游记(2)- 泛型编程
32 | 编程范式游记(3) - 类型系统和泛型的本质
33 | 编程范式游记(4)- 函数式编程
34 | 编程范式游记(5)- 修饰器模式
35 | 编程范式游记(6)- 面向对象编程
36 | 编程范式游记(7)- 基于原型的编程范式
37 | 编程范式游记(8)- Go 语言的委托模式
38 | 编程范式游记(9)- 编程的本质
39 | 编程范式游记(10)- 逻辑编程范式
40 | 编程范式游记(11)- 程序世界里的编程范式
41 | 弹力设计篇之“认识故障和弹力设计”
42 | 弹力设计篇之“隔离设计”
43 | 弹力设计篇之“异步通讯设计”
44 | 弹力设计篇之“幂等性设计”
45 | 弹力设计篇之“服务的状态”
46 | 弹力设计篇之“补偿事务”
47 | 弹力设计篇之“重试设计”
48 | 弹力设计篇之“熔断设计”
49 | 弹力设计篇之“限流设计”
50 | 弹力设计篇之“降级设计”
51 | 弹力设计篇之“弹力设计总结”
52 | 管理设计篇之“分布式锁”
53 | 管理设计篇之“配置中心”
54 | 管理设计篇之“边车模式”
55 | 管理设计篇之“服务网格”
56 | 管理设计篇之“网关模式”
57 | 管理设计篇之“部署升级策略”
58 | 性能设计篇之“缓存”
59 | 性能设计篇之“异步处理”
60 | 性能设计篇之“数据库扩展”
61 | 性能设计篇之“秒杀”
62 | 性能设计篇之“边缘计算”
63 | 区块链技术的本质
64 | 区块链技术细节:哈希算法
65 | 区块链技术细节:加密和挖矿
66 | 区块链技术细节:去中心化的共识机制
67 | 区块链技术细节:智能合约
68 | 区块链技术 - 传统金融和虚拟货币
69 | 程序员练级攻略:开篇词
70 | 程序员练级攻略:零基础启蒙
71 | 程序员练级攻略:正式入门
72 | 程序员练级攻略:程序员修养
73 | 程序员练级攻略:编程语言
74 | 程序员练级攻略:理论学科
75 | 程序员练级攻略:系统知识
76 | 程序员练级攻略:软件设计
77 | 程序员练级攻略:Linux系统、内存和网络
78 | 程序员练级攻略:异步I/O模型和Lock-Free编程
79 | 程序员练级攻略:Java底层知识
80 | 程序员练级攻略:数据库
81 | 程序员练级攻略:分布式架构入门
82 | 程序员练级攻略:分布式架构经典图书和论文
83 | 程序员练级攻略:分布式架构工程设计
84 | 程序员练级攻略:微服务
85 | 程序员练级攻略:容器化和自动化运维
86 | 程序员练级攻略:机器学习和人工智能
87 | 程序员练级攻略:前端基础和底层原理
88 | 程序员练级攻略:前端性能优化和框架
89 | 程序员练级攻略:UI/UX设计
90 | 程序员练级攻略:技术资源集散地
91 | 程序员面试攻略:面试前的准备
92 | 程序员面试攻略:面试中的技巧
93 | 程序员面试攻略:面试风格
94 | 程序员面试攻略:实力才是王中王
95 | 高效学习:端正学习态度
96 | 高效学习:源头、原理和知识地图
97 | 高效学习:深度,归纳和坚持实践
98 | 高效学习:如何学习和阅读代码
99 | 高效学习:面对枯燥和量大的知识
左耳听风
登录|注册

78 | 程序员练级攻略:异步I/O模型和Lock-Free编程

陈皓 2018-06-28

异步 I/O 模型

异步 I/O 模型是我个人觉得所有程序员都必需要学习的一门技术或是编程方法,这其中的设计模式或是解决方法可以借鉴到分布式架构上来。再说一遍,学习这些模型,是非常非常重要的,你千万要认真学习。
史蒂文斯(Stevens)在《UNIX 网络编程》一书 6.2 I/O Models 中介绍了五种 I/O 模型。
阻塞 I/O
非阻塞 I/O
I/O 的多路复用(select 和 poll)
信号驱动的 I/O(SIGIO)
异步 I/O(POSIX 的 aio_functions)
然后,在前面我们也阅读过了 - C10K Problem 。相信你对 I/O 模型也有了一定的了解。 这里,我们需要更为深入地学习 I/O 模型,尤其是其中的异步 I/O 模型。
首先,我们看一篇和 Java 相关的 I/O 模型的文章来复习一下之前的内容。Thousands of Threads and Blocking I/O: The Old Way to Write Java Servers Is New Again (and Way Better) ,这个 PPT 中不仅回顾和比较了各种 I/O 模型,而且还有各种比较细节的方案和说明,是一篇非常不错的文章。
然后,你可以看一篇 Java 相关的 PPT - 道格·莱亚(Doug Lea)的 Scalable IO in Java,这样你会对一些概念有个了解。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《左耳听风》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(51)

  • 江小田
    专栏本来就是方向指导性质的,并不会有什么可以让你直接看了就能用,能涨工资的所谓干货,订阅前都提醒过了,干嘛还有那么多抱怨?
    2018-06-28
    40
  • 李小红
    全部放链接?一篇文章下来全是推荐看其他文章,有时间看那么多文章还订阅这个嘛?

    作者回复: 开篇语已说过,一是这系列的文章只是在画地图,别人写的知识点给系统性的串起来,二是这里没有速成,三,高手区里就是扩大知识面。

    我只能给告诉你要吃什么,而不会喂到你嘴里,更不可能代替你去吃。见谅!

    2018-06-28
    24
  • yzz
    如果一本书一篇文章就能让你精通某个技术,那说明这个技术本身就没什么难度(价值),技术就是要静下心来。给这么多干货还不知道感激,感谢陈老师。
    2018-06-28
    20
  • 喬海軍
    老陈领进门,修行靠个人,感谢陈老师给出的这些资料。

    作者回复: 不客气

    2018-06-28
    14
  • 666
    看了很多文章下的评论,感觉挺奇怪的。不少人期待的是什么呢,看几篇文章就希望能成为大神?都总想着走捷径,学习是持续的过程,能力也不是一朝一夕就起来的,都只看到大神的风光,却没有看到别人背后的努力跟付出。
    2018-06-28
    11
  • 子非鱼焉知鱼之乐
    对专栏还是比较失望,觉得远远没有达预期,没有什么自己深入理解的东西,更像是罗列一些资料和使用经验,越听越失望,即便是介绍的这些资料,也根本没兴趣去查,都有自己的学习资料,不是来听这个的,以为有自己独特的想法和研究,还是名副其实的少。

    作者回复: 对不起令你失望了。攻略性质的文章就就像一个地图,而且这些文章不是用来听的,也不适合在手机上看,但我保证这些学习资料都是相当经典的和非常有价值的。我也过滤了很多。如果你没兴趣,我只能表示遗憾了……


    另外,对我来说,我对技术的想法并没有独特的地方,技术是严谨的,很难独特。

    2018-07-20
    8
  • Phoenix
    每周二和周四最期待的事情就是看耗子叔的专栏更新啦
    2018-06-28
    6
  • poetess
    对新手一点都不友好啊这个系列

    作者回复: 你已进入高手篇了……新手请去新手区😜

    2018-06-28
    4
  • 流浪
    这个专栏的干货太多太多了,衷心感谢作者大大的分享!希望作者大大不要像云风一样被其他人的评论影响了,冲冠一怒把专栏删了,损失的是我们😂
    2018-07-31
    3
  • 少年姜太公
    这类文章很好,囊括相关技术的书籍、博客、论文和框架库,有视野之广度和深度,相比纯粹技术知识分享更有裨益。
    2018-06-28
    3
  • 马广乐
    谢谢陈老师,让我们知道了这么多不知道的东西。
    2018-07-10
    2
  • Bin
    补英语…
    2018-06-29
    2
  • echo
    看了这个系列的文章,惊叹于是如何收集如此多的链接。想问下耗子哥,这些链接是平常查询时遇到,觉得很好就分类整理了,并经常查看(手册类)或偶尔回看(经验类)?还是先收藏下来,每一段时间有一个整理的习惯?

    作者回复: 基本上都是我自己的学习的过程总结,加上一些资料更新(后面还更多)。另外,我已经裁剪掉了七成了……

    2018-06-29
    2
  • 栗子。
    正在刷leetcode的数据库篇,耗子叔的专栏不止让我见识到了更广阔的世界,也让我明白了接下来的路该怎么走
    2018-06-28
    2
  • mz
    今年补了一下英语,虽然文章里面还是有很多单词不认识,但是现在已经乐于看英文文章了。
    2018-06-28
    2
  • Geek_122dd9
    得备一本牛津词典在桌子旁边了( ˘•ω•˘ )
    2018-06-28
    2
  • yzz
    感谢陈老师
    2018-06-28
    2
  • Mr.埃克斯
    感谢给出方向性指导。
    2019-10-21
    1
  • 屈小勇
    想问下耗子哥,亚马逊在中国上海有研发中心吗?

    招人的话,如果口语不太好,能进不?读写还可以的
    2019-06-12
    1
  • godtrue
    师傅领进门修行在个人,有不同的声音才正常,思考的维度有差异导致。
    2019-01-09
    1
收起评论
51
返回
顶部