相關關鍵詞
關于我們
最新文章
淺談socket同步和異步、阻塞和非阻塞、I/O模型
在進行網(wǎng)絡編程時,常常見到同步(Sync)/異步(Async),阻塞(Block)/非阻塞(Unblock)四種調用方式
同步/異步主要針對C端:
同步:c端發(fā)出一個功能調用時,在沒有得到結果之前,c端死等結果
例如:普通B/S模式(同步):提交請求->等待服務器處理->處理完畢返回 這個期間客戶端瀏覽器不能干任何事
異步:c端一個異步過程調用發(fā)出后,調用者不會立刻得到結果。實際處理這個調用的部件在完成后,通過狀態(tài)、通知和回調來通知調用者。
例如:ajax請求(異步): 事件觸發(fā)->服務器處理(瀏覽器可做其他的)->處理完畢,ajax回調函數(shù)處理結果
阻塞/非阻塞主要針對S端:
阻塞(等待):阻塞調用是指調用結果返回之前,當前線程會被掛起。函數(shù)只有在得到結果之后才會返回,效率低
<?php $fp = fopen("lock.txt", "w+"); if(flock($fp,LOCK_EX)) { //..處理訂單 flock($fp,LOCK_UN); } fclose($fp); ?>