轉載請註明出處 http://www.paraller.com
原文排版地址 點擊獲取更好閱讀體驗緩存
程序在等待操做執行完成的空檔,運行另外一個程序 提升資源利用率。安全
用戶對於計算機的使用權,經過粗粒度的時間分片 使得用戶和程序共享資源程序。多線程
一個任務分解多個子任務,必要時通訊共同完成任務。異步
對於單線程而言,若是要高效處理多個操做,必須使用非阻塞IO,複雜且易錯,若是可以爲每一個請求分配線程將下降開發的難度性能
線程容許在同一個進程中同時存在多個程序控制流,線程會共享進程中的資源;每一個線程有各自的 程序計數器、棧、局部變量。同一個進程中的多個線程也能夠被同時調度到多個CPU上運行。優化
對共享的可變的變量進行沒法預測順序的操做,將會形成與預期不一致的結果。線程
某個操做沒法繼續進行下去:A線程佔有資源長時間不釋放,致使B線程沒法繼續操做code
線程共享數據/使用同步機制:抑制編譯器的優化、緩存失效、共享內存總線的同步流量對象
核心在於: 避免多線程同時訪問可變狀態進程
共享
可變的
狀態訪問操做進行管理必須使用同步
重入:線程獲取本身持有的鎖,請求會得到成功
用同步來協調對一個變量的訪問