多執行緒應用場景:報表匯出,大批量資料同步等等吧。
同步100萬條資料,單個執行緒假如需要2.5個小時,如果5個執行緒一起跑可能只需要0.5小時,10個執行緒一起跑可能只需要十五分鐘。這樣就大大提高了效率。那麼我們如果讓多個執行緒同時跑,而且又跑的是不重複的資料呢,可以按照id ,時間段進行分割。每乙個執行緒跑20萬條,或者按照時間順序進行跑。***的例子是按照時間分割,進行多執行緒處理。
使用executorservice、callable、future實現有返回結果的多執行緒 應用demo
public static void main(string args)
});//需要返回值
future t2 = pool.submit(new callable()
});//需要返回值
future t3= pool.submit(new callable()
});//需要返回值
future t4 = pool.submit(new callable()
});//需要返回值
future t5 = pool.submit(new callable()
});//需要返回值
try catch (exception e)
//關閉執行緒池
pool.shutdown();
}/**
* 根據時間段查詢 分頁查詢 處理業務業務
* */
public static string aa(string starttime ,string endtime)catch (exception e)
return "任務返回執行結果,當前任務時間【" + time + "毫秒】";
}
返回結果:
>>>pool-1-thread-3任務終止-------2018-07-01 00:00:00====2018-08-01 00:00:00
>>>pool-1-thread-4任務終止-------2018-08-01 00:00:00====2018-12-01 00:00:00
>>>pool-1-thread-2任務終止-------2018-05-01 00:00:00====2018-07-01 00:00:00
>>>pool-1-thread-5任務終止-------2018-12-01 00:00:00====2019-02-01 00:00:00
>>>pool-1-thread-1任務終止-------2018-01-01 00:00:00====2018-05-01 00:00:00
t1:任務返回執行結果,當前任務時間【10008毫秒】
t2:任務返回執行結果,當前任務時間【7007毫秒】
t3:任務返回執行結果,當前任務時間【4007毫秒】
t4:任務返回執行結果,當前任務時間【7007毫秒】
t5:任務返回執行結果,當前任務時間【9008毫秒】
多執行緒執行demo
業務場景 需要大批量處理資料,執行時間容易超時。主線程等待子執行緒執行完成再執行 static int count 0 public static void main string args list list new arraylist list.add 2 list.add 1 list.add...
C 多執行緒demo
首先,我們寫個簡單的單執行緒程式,也就是只有程式自己建立的那個主線程,沒有使用多執行緒.建立乙個新工程,向視窗新增乙個label命名為label1 我們要讓程式執行時label1就顯示乙個數字,假設為100 通常我們會直接在視窗載入事件中寫label1.text 100 這樣,執行 label1果然...
多執行緒檔案搜尋Demo 原創
本demo只是提供一鐘思路,有興趣的朋友可以在其基礎上完善!用到了垮執行緒訪問ui控制項。this.listbox1.items.add f.name this.label1.text f.fullname delegate void finishedfindfilehandle string a ...