xylz,imxylz

          關(guān)注后端架構(gòu)、中間件、分布式和并發(fā)編程

             :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

          12 2011 檔案

          posted @ 2011-12-31 14:13 imxylz 閱讀(7469) | 評論 (5)  編輯

          posted @ 2011-12-30 17:25 imxylz 閱讀(6934) | 評論 (0)  編輯

               摘要: 線程池

          并發(fā)最常見用于線程池,顯然使用線程池可以有效的提高吞吐量。
          最常見、比較復(fù)雜一個場景是Web容器的線程池。Web容器使用線程池同步或者異步處理HTTP請求,同時這也可以有效的復(fù)用HTTP連接,降低資源申請的開銷。通常我們認(rèn)為HTTP請求時非常昂貴的,并且也是比較耗費資源和性能的,所以線程池在這里就扮演了非常重要的角色。
          在線程池的章節(jié)中非常詳細(xì)的討論了線程池的原理和使用,同時也提到了,線程池的配置和參數(shù)對性能的影響是巨大的。不盡如此,受限于資源(機(jī)器的性能、網(wǎng)絡(luò)的帶寬等等)、依賴的服務(wù),客戶端的響應(yīng)速度等,線程池的威力也不會一直增長。達(dá)到了線程池的瓶頸后,性能和吞吐量都會大幅度降低。
          一直增加機(jī)器的性能或者增大線程的個數(shù),并不一定能有效的提高吞吐量。高并發(fā)的情況下,機(jī)器的負(fù)載會大幅提升,這時候機(jī)器的穩(wěn)定性、服務(wù)的可靠性都會下降。
          盡管如此,線程池依然是提高吞吐量的一個有效措施,配合合適的參數(shù)能夠有效的充分利用資源,提高資源的利用率。  閱讀全文
          posted @ 2011-12-29 16:31 imxylz 閱讀(8158) | 評論 (0)  編輯

               摘要: 死鎖與活躍度

          前面談了很多并發(fā)的特性和工具,但是大部分都是和鎖有關(guān)的。我們使用鎖來保證線程安全,但是這也會引起一些問題。
          鎖順序死鎖(lock-ordering deadlock):多個線程試圖通過不同的順序獲得多個相同的資源,則發(fā)生的循環(huán)鎖依賴現(xiàn)象。
          動態(tài)的鎖順序死鎖(Dynamic Lock Order Deadlocks):多個線程通過傳遞不同的鎖造成的鎖順序死鎖問題。
          資源死鎖(Resource Deadlocks):線程間相互等待對方持有的鎖,并且誰都不會釋放自己持有的鎖發(fā)生的死鎖。也就是說當(dāng)現(xiàn)場持有和等待的目標(biāo)成為資源,就有可能發(fā)生此死鎖。這和鎖順序死鎖不一樣的地方是,競爭的資源之間并沒有嚴(yán)格先后順序,僅僅是相互依賴而已。  閱讀全文
          posted @ 2011-12-29 14:04 imxylz 閱讀(8250) | 評論 (2)  編輯

               摘要: 剛看到這個月的編程語言排行榜,很顯然java的霸主地位很快就會在發(fā)達(dá)國家被擠掉,C語言依然是王者(想想上個月自己買的兩個C語言的書,冷汗直流)。看來我遲早要回歸C,這才是真正的王道。



          非常令人吃驚的是C++語言依然不夠堅挺,由于Windows 7/Windows 8的發(fā)力,C#很快就會搶占C++的市場,估計很快就會將C++從前三名中擠下去。



          iPhone/iPad的熱銷讓Object C繼續(xù)火熱,前十的位置還是可以持續(xù)很久的,這一點毋庸置疑。移動設(shè)備開發(fā)的高端人才現(xiàn)在是高薪難求,如果有時間我也要繼續(xù)關(guān)注下。  閱讀全文
          posted @ 2011-12-06 11:25 imxylz 閱讀(4649) | 評論 (8)  編輯

               摘要: Zookeeper客戶端和服務(wù)端維持一個長連接,每隔10s向服務(wù)端發(fā)送一個心跳,服務(wù)端返回客戶端一個響應(yīng)。這就是一個Session連接,擁有全局唯一的session id。Session連接通常是一直有效,如果因為網(wǎng)絡(luò)原因斷開了連接,客戶端會使用相同的session id進(jìn)行重連。由于服務(wù)端保留了session的各種狀態(tài),尤其是各種瞬時節(jié)點是否刪除依賴于session是否失效。
          Session失效問題

          通常客戶端主動關(guān)閉連接認(rèn)為是一次session失效。另外也有可能因為其它未知原因,例如網(wǎng)絡(luò)超時導(dǎo)致的session失效問題。在服務(wù)端看來,無法區(qū)分session失效是何種情況,一次一旦發(fā)生session失效,一定時間后就會將session持有的所有watcher以及瞬時節(jié)點刪除。
          而對于Zookeeper客戶端而言,一旦發(fā)生失效不知道是否該重連,這涉及到watcher和瞬時節(jié)點問題,因此Zookeeper客戶端認(rèn)為,一旦發(fā)生了seesion失效,那么就認(rèn)為客戶端死掉了。從而所有操作都不能夠進(jìn)行。參考 How should I handle SESSION  閱讀全文
          posted @ 2011-12-05 13:57 imxylz 閱讀(28644) | 評論 (8)  編輯


          ©2009-2014 IMXYLZ
          主站蜘蛛池模板: 夹江县| 信宜市| 五家渠市| 定安县| 铅山县| 安宁市| 贵州省| 元谋县| 民乐县| 高雄县| 潜山县| 崇明县| 辽源市| 通榆县| 张家口市| 平陆县| 海淀区| 安新县| 湟源县| 盐津县| 崇仁县| 广昌县| 吉木乃县| 德格县| 灌南县| 台江县| 吉林省| 沅江市| 无极县| 昌乐县| 唐海县| 阜宁县| 清远市| 淳化县| 内丘县| 鲜城| 河津市| 体育| 大兴区| 玛多县| 大荔县|