同步,异步和多线程,阻塞和非阻塞的差别。

本文通过日常生活的例子,深入浅出地讲解了同步、异步和多线程的区别,同时对比了阻塞与非阻塞的运作方式,帮助读者理解并发编程的基本概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同步,异步和多线程

许多人有一个误区:异步多线程是一件事情。其实不是。我们用一个生活中的例子来解释一下三者的差别。

假如你现在有三件家务需要做:1. 煎鸡蛋, 2. 煮开水,3. 打扫客厅

  • 同步:你开始煎鸡蛋,等鸡蛋煎完,再去煮开水,开水煮完再去打扫客厅。你得先做完一件事,才会开始做下一件事情,这就是同步;
  • 异步:你把鸡蛋丢进锅了,设置了一个闹钟,就去煮开水了。同样,你在开水这边也设置了一个闹钟,就去打扫卫生了。等闹钟响了,你再去处理鸡蛋或开水;
  • 多线程:你雇了两个工人,一个帮你煎鸡蛋,你个帮你煮开水,你自己打扫卫生。
阻塞和非阻塞

你现在去书店买书,你问老板:有没有《Java concurrency in partice》?老板开始寻找。

  • 阻塞:你什么事都不干,就等老板找完告诉你;
  • 非阻塞:你去干其他事情,但是隔一定的时间就会回来问一下找到没有。

参考:

  1. https://stackoverflow.com/questions/2625493/asynchronous-vs-non-blocking
  2. https://stackoverflow.com/questions/34680985/what-is-the-difference-between-asynchronous-programming-and-multithreading?noredirect=1&lq=1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值