在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP/ 請問swoole能否使用在同步的業(yè)務(wù)邏輯上?

請問swoole能否使用在同步的業(yè)務(wù)邏輯上?

swoole的協(xié)程是能達(dá)到異步IO的性能,但相比異步IO和多線程來講,swoole協(xié)程是以同步編碼方式來實(shí)現(xiàn),而非回調(diào)方式。

問題:

如果現(xiàn)在的業(yè)務(wù)邏輯是同步的(例如:先查詢Mysql獲取某條記錄的ID,再根據(jù)此ID去查詢redis的某條記錄),那么能否使用swoole協(xié)程實(shí)現(xiàn)呢?

PS :

據(jù)我所知,swoole協(xié)程雖然是同步編碼風(fēng)格,但是其實(shí)是類似異步IO方式并發(fā)執(zhí)行,所以很疑惑同步邏輯能否實(shí)現(xiàn)?,異步IO是在回調(diào)函數(shù)中又套回調(diào)函數(shù),不好理解
回答
編輯回答
陌南塵

可以的,同步的業(yè)務(wù)邏輯,異步執(zhí)行的IO是不沖突的。

但是其實(shí)是類似異步IO方式并發(fā)執(zhí)行

同一段業(yè)務(wù)邏輯里,有數(shù)據(jù)依賴的IO是不會并發(fā)執(zhí)行的,但是不同業(yè)務(wù)邏輯里沒數(shù)據(jù)依賴的IO才會并發(fā)執(zhí)行。

例如:

先查詢Mysql獲取某條記錄的ID,再根據(jù)此ID去查詢redis的某條記錄

必須要先查Mysql再查Redis,但是并發(fā)處理多個這樣的請求時,多個Mysql查詢就可以并發(fā),多個Redis也可以并發(fā)。

2018年6月19日 09:29
編輯回答
萌面人

同步代碼會阻塞Worker,得到的好處將只有持久化,而協(xié)程使用的是異步IO,不會阻塞Worker

2018年8月16日 09:59
編輯回答
殘淚

本來就有異步和同步。。普通的就是同步,除非你調(diào)異步接口

2017年9月14日 17:30