父子程序的併發性

2021-06-23 04:59:23 字數 680 閱讀 3926

參考:

並行」是指無論從微觀還是巨集觀,二者都是一起執行的,就好像兩個人各拿一把

鐵杴在挖坑,一小時後,每人乙個大坑。

併發」在微觀上不是同時執行的,只是把時間分成若干段,使多個程序快速交替的執行,從巨集觀外來看,好像是這些程序都在執行,這就好像兩個人用同一把鐵杴,輪流挖坑,一小時後,兩個人各挖乙個小一點的坑,要想挖兩個大一點得坑,一定會用兩個小時。

從以上本質不難看出,

「併發」執行,在多個程序存在資源衝突時,並沒有從根本提高執行效率。

父子程序就是併發的。

以下是個人新增的見解:

在單處理器時,多程序並沒有多大意義,單處理器的多工處理只能是併發(交替以時間片輪詢的),此時巨集觀上是多工一起進行,實際在微觀上卻是以時間片交替進行,所以雖是在巨集觀上一起執行,但所用的時間與乙個程序乙個程序的執行並沒有節省多少,當有程序需要掛起或睡眠時有可能時間會一點,但若是沒有掛起或睡眠時,時間可能就會需要長一點,因為在時間片上不斷程序轉換核心也是需要消耗的。

但在多處理器時,多工就真的能做到並行性了,多個程序分別在不同處理器上執行,僅在資源衝突和需要同步時,停頓等待一下,其它時間真正做到非同步同時執行。但如上所說,當多個程序存在資源衝突時,並沒有從根本提高執行效率。

SQL Server 備份的併發性

當資料庫正在使用時,sql server 使用乙個聯機備份過程來對資料庫進行備份。在備份過程中,可以進行多個操作 例如 在執行備份操作期間允許使用 insert update 或 delete 語句。在資料庫或事務日誌備份的過程中無法執行的操作包括 如果備份操作與檔案管理操作或收縮操作重疊,則產生衝...

java static靜態方法的併發性

在做乙個web專案的時候需要做乙個通用類去處理一些問題,想到這個類很多地方都有用到,又不想每次都new乙個,因此就定義了裡面的方法是靜態方法,然後又因為多個靜態方法都用到了同乙個物件,結果定義了乙個類的全域性變數讓每個靜態方法去呼叫它,剛開始沒什麼問題,後來專案上線沒多久就掛了,最後發現這樣做導致了...

java static靜態方法的併發性

在做乙個web專案的時候需要做乙個通用類去處理一些問題,想到這個類很多地方都有用到,又不想每次都new乙個,因此就定義了裡面的方法是靜態方法,然後又因為多個靜態方法都用到了同乙個物件,結果定義了乙個類的全域性變數讓每個靜態方法去呼叫它,剛開始沒什麼問題,後來專案上線沒多久就掛了,最後發現這樣做導致了...