亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
123
最近訪問板塊 發(fā)新帖
樓主: py
打印 上一主題 下一主題

mojolicious自帶的不同server的問題(morbo和hypnotoad) [復(fù)制鏈接]

論壇徽章:
1
雙子座
日期:2013-11-06 17:18:01
21 [報(bào)告]
發(fā)表于 2014-03-25 19:07 |只看該作者
本帖最后由 seufy88 于 2014-03-25 20:02 編輯
py 發(fā)表于 2014-02-21 11:16
回復(fù) 15# seufy88

異步和非阻塞這兩個(gè)詞很多時(shí)候就混用了。


請?jiān)试S我再追問一下.

這里所謂的異步,或是mojo里的異步
請問下面的mojo中的異步,是指如果下面兩個(gè)web 請求都有數(shù)據(jù)到達(dá)了, sub A和  sub B是會(huì)"同時(shí)"處理 這個(gè)意思嗎?
$ua ->get('http://abc.com" => sub { A});
$ua ->get('http://def.com" => sub { B});

sub A, sub B可以同時(shí)運(yùn)行,互不影響?

補(bǔ)充:
就是 mojo 中
$ua ->get("web 1" => sub {A});
$ua ->get("web 2" => sub {B});
....
do something else
兩次get是非阻塞的,process不會(huì)阻塞在這里,
但是如果兩個(gè)get之后有數(shù)據(jù)到達(dá)了,是先執(zhí)行 sub A,還是執(zhí)行sub B?
又或者,如果process正在處理 do sometheing else部分,這時(shí)候A的數(shù)據(jù)可讀了,是馬上類似中斷一樣的去處理sub A嗎?
如果處理A的過程中,正好B的數(shù)據(jù)也變?yōu)榭勺x了,那么又中斷去處理B嗎?
還是說,A和B都不會(huì)相互影響,也不會(huì)影響process處理do something else(如果正在處理的話)

從使用UA模塊的來看,好像是A,B互不影響,像是注冊了A,B兩個(gè)事件,事件發(fā)生了就各自執(zhí)行callback,也不會(huì)影響到當(dāng)前process

之所以有這個(gè)疑問,是根據(jù)LINUX網(wǎng)絡(luò)編程是:
  1. while(1) {
  2.         非阻塞read(設(shè)備1);
  3.         if(設(shè)備1有數(shù)據(jù)到達(dá))
  4.                 處理數(shù)據(jù);
  5.         非阻塞read(設(shè)備2);
  6.         if(設(shè)備2有數(shù)據(jù)到達(dá))
  7.                 處理數(shù)據(jù);
  8.         ...
  9.         sleep(n);
  10. }
復(fù)制代碼
這上面提到的"非阻塞"來看(不清楚這里的非阻塞和mojo里的是不是一個(gè)概念)
在這個(gè)例子中,總是在一個(gè)process中,我無法理解異步的實(shí)現(xiàn)
或是之前你提到的:
"我先說完美的異步數(shù)據(jù)庫操作的應(yīng)該是什么樣的。假設(shè)有一個(gè)web頁面涉及5個(gè)sql查詢操作,每個(gè)操作耗時(shí)1秒,在只有一個(gè)worker的情況下(單進(jìn)程),如果有一個(gè)人訪問這個(gè)頁面,讀取時(shí)間應(yīng)該是1秒。如果有10個(gè)人同時(shí)訪問這個(gè)頁面,10個(gè)人都應(yīng)該在1秒鐘之內(nèi)看到頁面(理想狀況下)"

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
22 [報(bào)告]
發(fā)表于 2014-03-26 06:50 |只看該作者
所謂非阻塞,指的是進(jìn)程不會(huì)阻塞在非cpu計(jì)算的操作(主要是慢io)上
在純cpu計(jì)算的操作上,是阻塞的.(單cpu時(shí)間片輪轉(zhuǎn)),因?yàn)閏pu計(jì)算需要的時(shí)間通?梢远痰娇梢院雎.
所以數(shù)據(jù)同時(shí)到達(dá),以先到達(dá)的為準(zhǔn),處理完再處理另一個(gè).(我猜內(nèi)部肯定有一個(gè)事件隊(duì)列).



論壇徽章:
1
雙子座
日期:2013-11-06 17:18:01
23 [報(bào)告]
發(fā)表于 2014-03-26 10:06 |只看該作者
回復(fù) 22# laputa73


    "我先說完美的異步數(shù)據(jù)庫操作的應(yīng)該是什么樣的。假設(shè)有一個(gè)web頁面涉及5個(gè)sql查詢操作,每個(gè)操作耗時(shí)1秒,在只有一個(gè)worker的情況下(單進(jìn)程),如果有一個(gè)人訪問這個(gè)頁面,讀取時(shí)間應(yīng)該是1秒。如果有10個(gè)人同時(shí)訪問這個(gè)頁面,10個(gè)人都應(yīng)該在1秒鐘之內(nèi)看到頁面(理想狀況下)"
這個(gè)該如何理解
每個(gè)操作需要1秒,這個(gè)1秒是指消耗在SQL查詢(MYSQL SERVER處)?

     0 second
+-----------------------------------------------------
  my Process                    SQL Server
non block SQL 1 ------>             ↓
non block SQL 2 ------>     ↓
non block SQL 3 ------>      ↓
non block SQL 4 ------>       ↓
non block SQL 5 ------>        ↓












total  1 second
+-----------------------------------------------------

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
24 [報(bào)告]
發(fā)表于 2014-03-26 11:09 |只看該作者
回復(fù) 23# seufy88

是的。這里說的1秒并沒計(jì)算API通過socket發(fā)送請求到數(shù)據(jù)庫的時(shí)間,也沒計(jì)算接收數(shù)據(jù)的時(shí)間。

btw. 我記得那個(gè)時(shí)候看mysql的這個(gè)異步特性,“接收數(shù)據(jù)”期間并不是異步的。不過這還是可以接受的
   

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
25 [報(bào)告]
發(fā)表于 2014-03-26 12:07 |只看該作者
回復(fù) 23# seufy88


  純cpu和快io的處理時(shí)間是可以忽略的
在0s的時(shí)候,
  app server同時(shí)收到客戶端的10個(gè)請求(處理時(shí)間忽略),
  向socket的發(fā)送緩沖順序?qū)懭肓?0條查詢請求(寫入時(shí)間忽略).  這里是異步的,因?yàn)椴]有等待返回查詢結(jié)果才發(fā)下一條(需要數(shù)據(jù)庫的api支持).
每個(gè)請求從緩沖隊(duì)列到db server收到處理,返回到接收緩沖的時(shí)間最長為1s(這里有個(gè)假設(shè),就是db server必須是支持并發(fā)請求的)
那么在1s的時(shí)候,app server就同時(shí)收到了10條結(jié)果,然后依次讀取并渲染頁面(讀取時(shí)間忽略)
寫入到客戶端的socket發(fā)送緩沖(寫入時(shí)間忽略)



   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP