一. 概念介紹
並行執行,就是將乙個大型序列任務物理地劃分為多個較小的部分,這些較小的部分可以同時進行處理。這就好比蓋房子,有一些事情可以同時進行,比如:鋪設管線和電路配線可以同時進行。盡量讓能同時進行的事情同時處理,能夠大大提高整個任務的執行速度。
二. 並行執行使用場景
並行執行並不是萬能藥,有時候並行執行不但沒有提高執行速度,反而拖累了執行速度。比如你有一台4cpu的主機,平均有32個使用者同時執行查詢,那麼你不希望並行執行他們的操作。因為如果允許每乙個使用者執行乙個「並行度為2」的查詢,那麼就相當於在這台4cpu的主機發生64個併發操作,這樣速度也就更慢了。
如果要使用並行執行,一般需要考慮兩個條件:
1. 有乙個非常大的任務,比如對乙個50g資料進行全表掃瞄。
2. 必須有足夠多的可用資源。在掃瞄50g的資料之前,你要確保有足夠多大空閒cpu,足夠多的i/o通道。
也就是說,要有足夠雄厚的資本才能進行並行執行,否則反而會被其拖累。
ORACLE 的並行執行
1.並行查詢 例如 select count from big table 未設定並行查詢時,這個查詢是典型的序列查詢,不設計並行化,可以用 select from big table dbms xplan.display 檢視一下執行計畫。啟用並行查詢方法多種,可直接在查詢中使用乙個提示,或者修改...
AsyncTask並行執行
使用asynctask時發現乙個奇怪的現象,即建立多個任務的時候,他是乙個乙個按順序執行的,查資料之後發現 在1.5中初始引入的時候,asynctask 執行 asynctask.execute 起來是順序的,當同時執行多個 asynctask的時候,他們會按照順序乙個乙個執行。前面乙個執行完才會執...
Jenkins pipeline 並行執行任務流
筆者在 jenkins 在宣告式 pipeline 中並行執行任務 一文中介紹了如何在宣告式 pipeline 中執行並行的任務。前一段時間,jenkins 發布了 1.3 版的宣告式 pipeline declarative pipeline 這個版本繼續增強了並行執行任務的能力 並行執行的任務可...