同一時刻只能有一條線程在CPU上執(zhí)行?
1.我們所學習多線程不就是為了讓多條線程并發(fā)在服務器上執(zhí)行,加快處理某些業(yè)務的等待時間嗎,可章節(jié)4-2中3:06說的觀點怎么感覺不對勁呢。
2.再提一個問題,多線程執(zhí)行的過程中,每一條線程執(zhí)行的速度效率都不一致才是導致數(shù)據(jù)被破壞的原因吧
1.我們所學習多線程不就是為了讓多條線程并發(fā)在服務器上執(zhí)行,加快處理某些業(yè)務的等待時間嗎,可章節(jié)4-2中3:06說的觀點怎么感覺不對勁呢。
2.再提一個問題,多線程執(zhí)行的過程中,每一條線程執(zhí)行的速度效率都不一致才是導致數(shù)據(jù)被破壞的原因吧
2018-03-01
舉報
2018-03-01
第一個問題:并發(fā)時的時刻其實指的是某個很短的時間,當系統(tǒng)只有一個內核時,系統(tǒng)在某個時刻確實只能執(zhí)行一個線程,大多數(shù)系統(tǒng)都用的是時間片輪換算法,就是多個進程在分配到的極短時間片輪流使用CPU,詳情可以看看計算機操作系統(tǒng)這類書,都有具體介紹
第二個問題,按照我的理解是這樣的,用這個舉例吧
?
正確執(zhí)行時:
線程1:c=5000,a=5000;a=a+500=5500;c=a
線程2: c=5500;c=c+900=6400,結果是6400
爭用時:
線程1:c=5000,a=5000;a=a+500=5500;
線程2:c=5000;c=c+900=5900;
線程1:c=a,結果是5500
線程2與線程1爭用資源,導致c損失900;
2018-03-02
沒有看懂