Node.js這個東西在近幾年火起來了,而且會一直火下去,無論在infoq還是在cnblogs,csdn上,都可以到處看到它的樣子,它主推的應該就是異步式I/O 吧,是的,設計的很完美,很吸引人,雖然它與正常思維是不同的,但是當你真正認識它后,也會足夠的讓你愛上它!Node.js確實改變了我的編程觀念,改變了我對計算機系統的認識!
名人總結的話,我們應該回味個幾百次
同步式I/O: 線程在執行中如果遇到磁盤讀寫或網絡通信(統稱為I/O操作),通常要耗費較長的時間,這時操作系統會剝奪這個線程的CPU控制權,使其暫停執行(阻塞了當前線程中剩下的工作,當耗時操作完成后,才繼續執行剩下的代碼),同時將資源讓給其他的工作線程,這種線程調度方式稱為阻塞。當I/O操作完畢,操作系統將這個線程的阻塞狀態解除,恢復其對CPU的控制權,令其繼續執行。這種 I/O模式就是通常的同步式I/O(Synchronous I/O).
異步式I/O: 當線程遇到I/O操作時,不會以阻塞的方式等待I/O操作的完成或數據的返回,而只是將I/O請求發送到操作系統,繼續執行下一條語句。當操作系統完成I /O操作時,以事件的形式通知執行I/O操作的線程,線程會在特定時候處理這個事件。為了處理異步I/O,線程必須有事件循環,不斷地檢查有沒有未處理的事件,依次處理。(有個事件隊列機制,它永遠的輪訓著,當有需要處理的事件時,就會處理這個事件的回調方法)
完善的事件輪詢機制,改變了程序的運行方式,改變了程序員的思維!
Node.js教程系列~目錄
NodeJS實例系列
環境搭建系列
Node.js~sails.js~package.json的作用(New)
Node.js與Sails系列
擴展組件系列
Node.js與Express
Node.js的事件機制
Node.js的異步I/O機制
Node.js與MongoDb
Node.js與Sqlserver
永久更新中...
文章列表