資料庫表複製,資料量大時,用單純的客戶端工具只能單執行緒匯入,時間耗時長。本文主要採用jdbc
和執行緒池
解決這個問題。
jdbc
我用的 postgrepsql 資料庫,根據自己的資料庫 新增pom.xml
>
>
postgresqlgroupid
>
>
postgresqlartifactid
>
>
9.1-901-1.jdbc4version
>
dependency
>
工具類static string url =
"*";
static string user =
"*";
static string password =
"*";
public
static connection getconnect()
catch
(exception e)
return con;
}
需要執行的sql 新增到乙個集合,我用的是
insert
into tablea (
select
*from tableb)
定義執行緒池
public
static
void
main
(string[
] args)
executorservice executorservice = executors.
newfixedthreadpool
(threadcount)
;final countdownlatch countdownlatch =
newcountdownlatch
(recordlist.
size()
);for(
int i =
0; i < threadcount; i++
) string string = null;
trycatch
(interruptedexception e1)
trycatch
(exception e)
finally}}
});}
while
(countdownlatch.
getcount()
!=0)catch
(interruptedexception e)
} executorservice.
shutdownnow()
; system.out.
println
(new
date()
+"多執行緒匯入結束");
}}
多執行緒 執行緒池執行多業務邏輯
1.執行緒池執行不同的業務邏輯.2.獲取每個任務執行的結果 3.最後的結果會用到之前的結果 public class searchuserlistdto catch interruptedexception e system.out.println 111 乙個執行緒池,三個執行緒,執行三個任務,只...
執行緒 執行緒池
執行緒池是一種多執行緒處理形式,處理過程中將任務新增到佇列,然後在建立執行緒後執行,主要實現 建立執行緒和管理執行緒,並且給執行緒分配任務。執行緒池中的執行緒是併發執行的。乙個比較簡單的執行緒池至少應包含執行緒池管理器 工作執行緒 任務列隊 任務介面等部分。其中執行緒池管理器的作用是建立 銷毀並管理...
執行緒 執行緒池
乙個簡單執行緒的建立和銷毀如下 與程序程序相比,執行緒是一種輕量級的工具,但是輕量並不代表沒有,它的建立和關閉依然需要花費時間,如果建立和銷毀的時間還大於執行緒本身完成的工作,那就會得不償失,甚至會造成out of memory。即使沒有,大量的執行緒 也會給gc帶來巨大的壓力。為了解決這樣的問題,...