原创 內核同步之自旋鎖與讀寫自旋鎖

用在多個CPU系統中的鎖機制,當一個CPU正訪問自旋鎖保護的臨界區時,臨界區將被鎖上,其他需要訪問此臨界區的CPU只能忙等待,直到前面的CPU已訪問完臨界區,將臨界區開鎖。自旋鎖上鎖後讓等待線程進行忙等待而不是睡眠阻塞,而信號量是讓等待線程

原创 Intel Nehalem架構核心技術學習

Nehalem單獨的核心架構:大概僅有1/3的芯片面積用來做L1和L2的高速緩存。另外1/3用來部署亂序執行單元引擎和其他零碎的部件。最後1/3的面積用來實現解碼單元的功能,分支預測邏輯判定功能,內存的排序和頁處理功能。除了單獨的處理核心之

原创 常見數據結構算法邊學邊記

一、如何判斷鏈表中有無環解法:設置了兩個指針p和q,他們分別以速度爲1和2前進(公式應該是p和q分別以速度爲v1和v2且|v2-v1|爲1),如果到某一次循環發現他們相等,即都指向同一結點(空節點除外,以後討論的節點都不包含空節點),則說明

原创 設計模式之適配器模式

以下情況使用適配器模式 你想使用一個已經存在的類,而它的接口不符合你的需求。 你想創建一個可以複用的類,該類可以與其他不相關的類或不可預見的類(即那些接口可能不一定兼容的類)協同工作。 (僅適用於對象Adapter)你想使用一些已經存在的子

原创 java併發編程實戰學習筆記之基礎知識與對象的共享

第二章:線程安全性2.1 什麼是線程安全性可以被多個線程調用,並且在線程之間不會出現錯誤的交互方法內的局部變量不需要保護,因爲它存儲在棧中,是每個線程獨有的2.2 原子性一個共享變量可以定義爲原子變量:atomic多個共享變量時,之間可能存

原创 linux軟件安裝

1、源碼包開源,編譯安裝,甚至可以修改,卸載方便,安裝時間長,步驟太多,出錯很難解決2、RPM包(二進制包)源代碼看不到,安裝快,通過命令執行安裝,有依賴性RPM包一般在光盤裏面,模塊依賴性,很難解決,一般都安裝在默認安裝位置,搞得系統到處

原创 java多線程學習筆記

一、線程的創建1.  通過繼承Thread類,重寫Thread的run()方法,將線程運行的邏輯放在其中      2.  通過實現Runnable接口,實例化Thread類        但是在使用Runnable定義的子類中沒有star

原创 java併發編程實戰學習筆記之取消與關閉

第七章 取消與關閉7.1 任務取消方式一、通過volatile類型的域來保存取消狀態方式二、interrupt()方法interrupt()可以中斷目標線程isinterrupted()方法用來檢測目標線程的中斷狀態interrupted(

原创 MySQL索引背後的數據結構及算法原理

轉自:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 作者 張洋 | 發佈於 2011-10-18摘要本文以MySQL數據庫爲研究對象,討論與數據庫索引相關的一些

原创 linux磁盤管理基本命令

1、df查看磁盤分區使用情況:默認-l參數,可選參數-a,-T(顯示文件系統類型),-h(常用的以人可以看懂的K、M等來表示文件分區使用大小)2、du統計磁盤上文件大小:不加命令是統計當前文件夾下所有文件的大小,-s統計制定文件或者文件夾的

原创 linux用戶與用戶組

用戶組:/etc/group格式爲:組名  組密碼  組號  組內成員列表1-499 爲系統創建的組,500開始作爲用戶組,密碼佔位符爲X用戶組密碼文件:/etc/gshadow格式爲:組名  組密碼  組管理者  組內成員列表用戶:/et

原创 java 反射機制與動態加載類學習要點

獲取Class類的對象:假設Foo是一個類,Foo foo = new Foo();則第一種:Class c1 = Foo.class;第二種:Class c2 = foo.getClass();第三種:Class c3 = Class.f

原创 JAVA設計模式之動態代理

代理:設計模式代理是一種常用的設計模式,其目的就是爲其他對象提供一個代理以控制對某個對象的訪問。代理類負責爲委託類預處理消息,過濾消息並轉發消息,以及進行消息被委託類執行後的後續處理。爲了保持行爲的一致性,代理類和委託類通常會實現相同的接口

原创 linux系統掃描

nmaptraceroutenetcat(nc):1、端口掃描2、chat server3、文件傳輸4、目錄傳輸5、數據加密etherapeifstatiftopfping:        Fping與ping不同的地方在於,fping可以

原创 java通過JDBC連接mysql數據庫

第一步:下載mysql驅動,網址http://dev.mysql.com/downloads/connector/j/第二步:講mysql驅動mysql-connector-java-5.0.5-bin.jar加入到項目的lib目錄或者將該