原创 發現java程序cpu利用率100%的解決方法

最近發現一個java程序的cpu利用率總是在100%,開始沒注意,以爲是有負載在正常跑,後來發現不是這麼一個情況,應該是程序裏的某個線程在死循環中,只是程序裏面n多線程,怎麼知道是哪個線程把cpu佔滿了? 1)先用top找出哪個線程佔着

原创 常用設計模式總結--組合模式

組合模式 —composite 模式,將對角組合成樹形結構以用來表示“部分與整體”的層次結構, composite 使得用戶對單個對象的使用和組合對象的使用具有一致性。 Composite 模式也是一種常用的模式,因爲大多數時候

原创 linux下Mysql忘記密碼咋辦

在linux下忘記mysql的密碼,咋整?有一種方法可以很快的重設密碼。 首先,關閉mysql. 這個時候你用Mysqladmin shutdown來關閉mysql基本是不可能的,爲啥,因爲你不知到密碼了麼,用其它用戶去連接mysql庫,

原创 Java的多線程編程模型2--怎樣才線程安全

在Java多線程編程模型1裏面講到了爲什麼線程不安全,那怎樣才能做到線程安全了?   先來看線程工作是跟內存是怎麼打交道的。 在併發的線程中,分爲主內存和工作內存,主內存就是程序分配的內存,工作內存就是線程所佔的內存。線程可能在工作內存中

原创 linux下ulimit命令

你是否曾遇到過在程序裏面創建線程提示你資源不夠,你是否曾遇到過在gcc中加入-g選項,程序崩潰時卻沒有任何core文件產生。如果就,那你就要注意到ulimit命令了。ulimit -a 查看全部資源的使用情

原创 Java的多線程編程模型3 -- 在1.5之前怎麼併發

在java1.5之前,java在併發上面的建樹不多,只提供了爲數不多的方式來提供提高併發的效率。 其中synchronized關鍵字是使用最多的,這個看似簡單的鎖方式,效率奇差,所以那會,java程序員對於c++程序員的在java併發上的

原创 Java的多線程編程模型5--Java中的CAS理論

CAS,compare and swap的縮寫,中文翻譯成比較並交換。 我們都知道,在java語言之前,併發就已經廣泛存在並在服務器領域得到了大量的應用。所以硬件廠商老早就在芯片中加入了大量直至併發操作的原語,從而在硬件層面提升效率。在i

原创 常用設計模式總結--裝飾模式

常用設計模式總結—裝飾模式 在平時的編程過程中,我們可能會經常遇到這樣一種情況,代碼的輸出是將輸入層層包裝以後來得到的。就好比我們裝修的時候砌牆一樣,先是刮水泥、然後是塗膩子,最近刷油漆,經過以上的步驟,我們就能夠得到一面乾淨的牆了。 在

原创 常用設計模式總結--橋接模式

橋接模式, bridge 模式。 如果你是一個 linux 的愛好者,也許你會發現 linux 下有兩套不太一樣的桌面環境,一個是 KDE ,一個是 GNOME 。如果現在你要開發一個 linux 的桌面應用程序,估計你也會覺得頭

原创 Java的多線程編程模型4--synchronized

在Java1.5之前,synchronized應該是最常用的java支持併發手段。那synchronized是怎麼做到的了,從java1.0開始,java中的每個對象就一個內部鎖。如果一個類的方法被synchronized關鍵字所修飾,那