並行數據庫
計算機操做系統中的並行,指的是同時存在於內存中的多道做業都處於運行狀態。實際上都是宏觀上並行,微觀上串行,由於這些做業都是開始各自的運行,但都沒運行完畢,只是交替地使用cpu。併發
在操做系統中是指,一組程序按獨立異步的速度執行,不等於時間上的重疊(同一個時刻發生)。要區別併發。併發是指:在同一個時間段內,兩個或多個程序執行,有時間上的重疊(宏觀上是同時,微觀上還是順序執行)。並行也指8位數據同時經過並行線進行傳送,這樣數據傳送速度大大提升,但並行傳送的線路長度受到限制,由於長度增長,干擾就會增長,數據也就容易出錯。異步
併發spa
在操做系統中,是指一個時間段中有幾個程序都處於已啓動運行到運行完畢之間,且這幾個程序都是在同一個處理機上運行,但任一個時刻點上只有一個程序在處理機上運行。操作系統
在關係數據庫中,容許多個用戶同時訪問和更改共享數據的進程。SQL Server 使用鎖定以容許多個用戶同時訪問和更改共享數據而彼此之間不發生衝突。線程
操做系統併發程序執行的特色:htm
併發環境下,因爲程序的封閉性被打破,出現了新的特色:進程
①程序與計算再也不一一對應,一個程序副本能夠有多個計算事件
②併發程序之間有相互制約關係,直接制約體現爲一個程序須要另外一個程序的計算結果,間接制約體現爲多個程序競爭某一資源,如處理機、緩衝區等。內存
③併發程序在執行中是走走停停,斷續推動的。
併發和並行的區別和聯繫
「並行」是指不管從微觀仍是宏觀,兩者都是一塊兒執行的,就好像兩我的各拿一把鐵杴在挖坑,一小時後,每人一個大坑。 而「併發」在微觀上不是同時執行的,只是把時間分紅若干段,使多個進程快速交替的執行,從宏觀外來看,好像是這些進程都在執行,這就好像兩我的用同一把鐵杴,輪流挖坑,一小時後,兩我的各挖一個小一點的坑,要想挖兩個大一點得坑,必定會用兩個小時。 從以上本質不難看出,「併發」執行,在多個進程存在資源衝突時,並無從根本提升執行效率
併發,是在同一個cpu上同時(不是真正的同時,而是看來是同時,由於cpu要在多個程序間切換)運行多個程序。並行,是每一個cpu運行一個程序。打個比方,併發,就像一我的(cpu)喂2個孩子(程序),輪換着每人喂一口,表面上兩個孩子都在吃飯。並行,就是2我的喂2個孩子,兩個孩子也同時在吃飯。
併發和並行是即類似又有區別的兩個概念,並行是指兩個或者多個事件在同一時刻發生;而併發是指兩個或多個事件在同一時間間隔內發生。在多道程序環境下,併發性是指在一段時間內宏觀上有多個程序在同時運行,但在單處理機系統中,每一時刻卻僅能有一道程序執行,故微觀上這些程序只能是分時地交替執行。假若在計算機系統中有多個處理機,則這些能夠併發執行的程序即可被分配到多個處理機上,實現並行執行,即利用每一個處理機來處理一個可併發執行的程序,這樣,多個程序即可以同時執行。
同步
同步就是協同步調,按預約的前後次序進行運行。如:你說完,我再說。
「同」字從字面上容易理解爲一塊兒動做。
其實不是,「同」字應是指協同、協助、互相配合。
如進程、線程同步,可理解爲進程或線程A和B一塊配合,A執行到必定程度時要依靠B的某個結果,因而停下來,示意B運行;B依言執行,再將結果給A;A再繼續操做。
互斥
兩個或兩個以上的進程,不能同時進入關於同一組共享變量的臨界區域,不然可能發生與時間有關的錯誤,這種現象被稱做進程互斥.