代码精进之路
范学雷
前 Oracle 首席软件工程师,Java SE 安全组成员,OpenJDK 评审成员
37886 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
结束语 (1讲)
代码精进之路
15
15
1.0x
00:00/00:00
登录|注册

25 | 使用有序的代码,调动异步的事件

同步和异步,是两个差距很大的编程模型。同步,就是很多事情一步一步地做,做完上一件,才能做下一件。异步,就是做事情不需要一步一步的,多件事情,可以独立地做。
比如一个有小鸟的笼子,如果打开笼门,一个一个地放飞小鸟,就是同步。如果拆了整个鸟笼,让小鸟随便飞,爱怎么飞就怎么飞,这就是异步。

为什么需要异步编程?

如果我们观察身边的事物,现实中有很多事情是以异步的方式运营的。我们挤地铁的时候,从来都是好几个人一起挤进去的。当我们正在挤地铁时,外面的风照旧吹,雨照旧下,天坛的大爷大妈们正在秀着各种绝活。没有任何事情会因为我们正在挤地铁就停止活动,等我们挤完地铁再恢复运转。
可是,要是说到其中的任何一个人,就不能同时做两件事情了。在挤地铁的时候,就不能在天坛秀绝活。我们写的程序也是这样,先执行第一行,再执行第二行。哪怕第二行再怎么费周折,第三行代码也要等着。
第二行代码可能需要执行大量的计算,需要很多的 CPU;也可能需要大量的传输,占用 I/O 通道。可是,它不一定会把所有的计算机资源都占用了。
如果第二行代码占用了 I/O,我们能不能把多余的 CPU 用起来?如果第二行代码占用了 CPU,我们能不能把空闲的 I/O 用起来? 也就是说,能不能把计算机整体资源更有效地使用起来?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《代码精进之路》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • 正在减肥的胖籽。
    范老师您好,在Java项目中,tomcat的线程一般开多少个线程比较好?这块有好的心德吗?在项目开发过程中一直对线程池的个数拿捏不准。

    作者回复: 一般的,线程个数和很多因素相关,比如软件架构、用户数等。线程数和CPU数匹配是一个常见的设置,但是也仅适用于少数场景,比如每个计算任务都很快。性能参数选择,一般可以做成可配置的,然后反复测试,找到合适的组合。 很抱歉,我不了解tomcat的细节,没有办法给你建议。留言区的小伙伴们帮帮忙!

    4
  • 轻歌赋
    其实我更想知道异步编程的一些编码规范,来帮助我少些一些多线程异常代码

    作者回复: 异步编程的编码模式吗? 编码规范,如果你指的是代码规范,和普通的代码规范区别不大。

    1
  • 刚毅坚卓
    异步编程就像,你在等排队处理业务时顺便玩一下手机。等排到你的时候,你再把手机放好,然后精力转过来处理业务;或者是把手机上的事情弄好,再来处理业务 不知道这样理解对不对呢

    作者回复: 哈哈,好玩的类比啊。不过,玩手机被中断了,这是同步。

  • 黄智勇
    这就体现了我用nodejs来做开发的优势了,async/await 的方式,还可以开发异步程序像开发同步程序,开发效率一样高
    6
  • ifelse
    异步编程,常见的模型是事件驱动的。我们通过使用有序的代码,调动独立的事件,来更有效地利用计算资源。--记下来
  • 进化菌
    异步,就是不同步,把事情交给对方,对方完成或异常都会有所反馈。 这在很多地方会用的到,比如写日志,比如通知……
  • 程序员汪师傅
    httpClient.sendAsync(httpRequest, BodyHandlers.ofString()) .thenApply(HttpResponse::body) .thenAccept(System.out::println); 在异步处理的时候,是在哪个线程执行的,什么时候执行呢。在异步的时候线程是如何被调度的。例如thenApply是sendSync返回之后执行的,那么是谁(哪个线程)在执行它,是如何触发执行的呢
  • William
    异步处理,优点不阻塞当前线程. 前提是当前的请求不要求及时返回结果数据,可以采用异步方式.
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部