一针见血,最通俗易懂的解释什么是同步,什么是异步?有图有真相!
我直接举2个例子来解释下什么是同步(synchronized),什么是异步(Asynchronous)?有图有真相!
例子1
就拿我妈做饭来说吧!我妈做午餐(用电饭煲煮饭、洗菜、切菜、炒菜)
我妈做午餐第1种方式:同步的方式
我妈用清水洗好米,然后把米放进电饭煲里面煮,大约30分钟能煮熟,饭在煮熟之前,电饭煲的指示灯是红色的,饭煮熟后指示灯会变成黄色的(即电饭煲的指示灯是红色,表示在煮ing,指示灯是黄色,表示饭煮熟了);
在煮饭的这30分钟内,我妈就在那等着饭煮熟,等饭煮熟之后才去洗菜、切菜、炒菜,也就是说,在煮饭的这30分钟内,我妈什么事情都干不了,我妈只能等饭煮熟后才能继续做其他的事情,这就是同步。(同步会阻塞后面的事情,换一句话说就是同步方式,你必须要等待,即只有等前面的事情做完了,你才能继续做后面的事情)
我妈做午餐第2种方式:异步的方式
我妈用清水洗好米,然后把米放进电饭煲里面煮,大约30分钟能煮熟,饭在煮熟之前,电饭煲的指示灯是红色的,饭煮熟后指示灯会变成黄色的(即电饭煲的指示灯是红色,表示在煮ing,指示灯是黄色,表示饭煮熟了);
在煮饭的这30分钟内,我妈可以干其他的事情,比如,我妈可以在客厅看电视,也可以和她的小伙伴打麻将,也可以织毛衣,当然了,也可以洗菜,切菜,炒菜,反正、总之,在煮饭的这30分钟内,我妈可以干其他的事情,说白了,就是在这30分钟内的煮饭的过程中,我妈不用傻傻的在那等饭熟了,在这30分钟内的煮饭的过程中,我妈可以继续干其他事情,说白了,就是不用傻傻等待了,饭煮熟后,电饭煲的指示灯自己会变成黄色,我妈到时候看到黄色的指示灯,就知道饭熟了,这就是异步(异步不会阻塞后面的事情,换一句话说就是异步方式,你不需要等待前面的事情做完,你可以继续做后面的其他事情,即你不用管前面的事情有没有做完,你可以继续做后面的其他事情,等前面的事情做完了,系统会自动通知你前面的事情做完了,就像煮饭的过程中,我妈不用在那傻傻的等饭熟了,而是继续做其他事情,饭如果熟了,电饭煲的指示灯会自动变成黄色提示我妈饭熟了)
ajax就是异步的,以后有时间写一篇ajax的文章!
以上例子通俗易懂的解释了什么是同步,什么是异步!
小结一下:
同步会阻塞后面的事情,换一句话说就是同步方式,你必须要等待,即只有等前面的事情做完了,你才能继续做后面的事情;
异步不会阻塞后面的事情,换一句话说就是异步方式,你不需要等待前面的事情做完,你可以继续做后面的其他事情,即你不用管前面的事情有没有做完,你可以继续做后面的其他事情,等前面的事情做完了,系统会自动通知你前面的事情做完了。
例子2
就拿去银行办理业务的例子来说吧!看下图:
岳不群、令狐冲、任盈盈、东方不败在银行排队办理业务!
岳不群去银行办理银行卡挂失的业务,猛然发现,自己忘记带身份证了!
岳不群打电话给女儿岳灵珊:丫头啊,把老爸的身份证送过来!
20分钟后,岳灵珊屁颠屁颠的把身份证送过来了!
同步:在岳不群后面的令狐冲、任盈盈、东方不败只能等岳灵珊把岳不群的身份证送过来,只有等岳不群彻底办完了挂失银行卡的业务,岳不群后面的人,才能继续办业务,即在岳灵珊送身份证的这20分钟的过程中,岳不群后面的人只能等待,相当于同步会阻塞后面的人
异步:在岳不群后面的令狐冲、任盈盈、东方不败不用等待岳不群,即岳不群后面的人可以继续去窗口办理业务,岳灵珊什么时候把身份证送到岳不群手里了,岳不群就会通知一下大家,我岳不群拿到身份证了,我岳不群要继续办理业务喽,说白了就是,岳不群如果没带身份证的话,后面的人不用等待岳不群,而是会继续去窗口办理业务,相当于异步不会阻塞后面的人