java執行緒池的理解及總結(一)

2021-09-12 17:57:33 字數 2133 閱讀 9111

需求:

常用的連線池有:c3p0(佔80%以上的使用率,是比較常用的)、dbcp

主要的模型圖如下:

**如下:

public

class

mydatasource

implements

datasource

}@override

// 獲得連線的方法:

public connection getconnection()

throws sqlexception

} connection conn = list.

remove(0

);return conn;

}// 歸還連線的方法:

public

void

addback

(connection conn)..

.}

二種方式:裝飾者模式方式.

三種方式:動態**的方式.

/**

* 繼承的方式增強乙個類中某個方法:

*/class

man}

class

superman

extends

man}

/** * 使用裝飾者的方式完成類的方法的增強

*/inte***ce

waiter

class

waiteress

implements

waiter

}class

implements

waiter

@override

public

void

server()

}【使用裝飾者模式增強connection的close方法】

public

class

myconnection

implements

connection

連線池的getconnection方法:

@override

// 獲得連線的方法:

public connection getconnection()

throws sqlexception

} connection conn = list.

remove(0

);myconnection myconn =

newmyconnection

(conn, list)

;return myconn;

}@override

public

void

close()

throws sqlexception ..

.}

當然嫌麻煩,你可以使用別人已經封裝好的。日常的框架程式中,我們也是用c3p0和dbcp也更多一些。

【dbcp連線池的使用】

第一步:引入dbcp連線池的jar包.

第二步:編寫dbcp**.

@test

/** * 手動方式:

*/public

void

demo1()

}catch

(exception e)

finally

}@test

/** * 配置檔案方式:

*/public

void

demo2()

}catch

(exception e)

finally

}

【c3p0連線池的使用】

**第一步:引入c3p0連線池的jar包.

**第二步:編寫**.

【c3p0改造工具類】

public

class

jdbcutils2

catch

(sqlexception e)

return conn;}.

..

resultsethandler

總結:

對Java執行緒池的理解

1.runnable 是執行緒嗎?runnable不是執行緒,thread 才是。比如單一執行緒池 executor 會在內部建立乙個 thread 這個thread 會從乙個任務佇列中取出使用者提交的任務並執行,如果在執行的過程中出現異常,executor 會自動啟動新執行緒繼續執行 2.thre...

Java多執行緒及執行緒池

提問 我開啟了乙個qq 又開啟了乙個遊戲,請問我開啟了兩個執行緒嗎?回答 概念理解錯誤,你其實開啟是兩個程序,為什麼呢,請看概念 程序是正在執行的程式,是系統呼叫資源和進行資源分配的基本單位。比如所說的qq 和乙個遊戲,這就是兩個正在執行的程式。我們的作業系統都是多程序的。繼續提問 早期的計算機是單...

執行緒池的理解及使用

1.初識執行緒池 根據系統自身的環境情況,有效的限制執行執行緒的數量,使得執行效果達到最佳。執行緒主要是通過控制執行的執行緒的數量,超出數量的執行緒排隊等候,等待有任務執行完畢,再從佇列最前面取出任務執行。2.執行緒池作用 減少建立和銷毀執行緒的次數,每個工作執行緒可以多次使用 可根據系統情況調整執...