由於在實際工作中使用到了mina,所以一直關注其mail-list。最近mina的mail-list討論的一個問題,就是提供的manual close connector,這個問題可害慘我了。原來的Connector,無論是SocketConnector或者VmPipeConnector,都是沒有提供close方法的,而且不會自動釋放。原來做得一個網路程式用戶端,每次重新建立的時候,都會new
一般來說,Exchanger都是一個Consumer,一個producer,在適當的時候互相交換,這樣可以避免鎖。我想到Exchanger N parties的一種用法。如下:最初N個都是producer,達到一定條件之後,進行交換。根據交換的結果重新確定角色,決定自己是consumer還是producer。這樣做的結果是,最初所有都是producer,之後一部分轉變成consumer。並且由於consumer以及producer的速度不一樣,而能夠自動適應調整。要注意的是,JDK
(本文作者溫少,首發於部落格園,轉載請註明)ID產生演算法,其中一種就是使用GUID(又稱UUID),使用128位儲存。UUID的一個問題是太長,可讀性太差,人腦無法記憶。替代方案之一,就是使用關聯式資料庫的自增長欄位,自增長欄位的一個問題是,無法預先建立一個ID,只能夠在儲存的時候才能產生ID,這對於批量關聯插入資料來說,不滿足需求。替代方案之二,就是使用一個記錄ID的表,每次加一,在事務中使用Select FOR UPDATE來讀取然後UPDATE SET FVALUE = FVALUE +
Herb Sutter的觀點Herb Sutter最近的一篇文章中如是說:“90年代,我們到處跟人叫講,什麼是對象,什麼是虛函數,現在我們到處跟人說,什麼是主動對象,什麼是Future”,他還說,結構編程、物件導向,現在該輪到並發和並行了。記得在去年,Herb Sutter就寫文章預示並發時代的到來,主要是因為CPU的主頻將不再會有以前那樣的增長速度,而將迎來多核時代。程式將是靠並發來提高運行效率。JDK 1.5
最近編碼更流暢了。原因包括:1) 絕大多數時候純鍵盤操作,Eclipse 200多個快速鍵,我熟練使用絕大部分,編碼的過程,如同行雲流水般。2)掌握了更多的解決問題的辦法,有了更廣的知識面,編碼時,信手拈來。最近一年裡,掌握了很多知識,包括並發、網路、作業系統等等方面的知識。3)組織代碼的能力更強了,最近對於大型複雜的程式,組織代碼的能力更強了,組織程式的能力包括,更好的結構,更好的擴充性,可測試性,可管理性等等。 a) 在編碼的過程中,使得更多的模組可以單獨於整個環境獨立測試 b)