Posted on 2011-10-04 16:08
leekiang 閱讀(699)
評論(0) 編輯 收藏 所屬分類:
數據結構,算法,基礎
并發(fā)與并行
并
發(fā),英文單詞是concurrent,是指邏輯上同時發(fā)生,有人做過比喻,要完成吃完三個饅頭的任務,一個人可以這個饅頭咬一口,那個饅頭咬一口,這樣交
替進行,最后吃完三個饅頭,這就是并發(fā),因為在三個饅頭上同時發(fā)生了吃的行為,如果只是吃完一個接著吃另一個,這就不是并發(fā)了,是排隊,三個饅頭如果分給
三個人吃,這樣的任務完成形式叫并行,英文單詞是parallel。
回到計算機概念,并發(fā)應該是單CPU時代或者單核時代的說法,這個時候CPU要同時完成多任務,只能用時間片輪轉,在邏輯上同時發(fā)生,但在物理上是串行的。現在大多數計算機都是多核或者多CPU,那么現在的多任務執(zhí)行方式就是物理上并行的。
為了從物理上支持并發(fā)編程,CPU提供了相應的特殊指令,比如原子化的讀改寫,比較并交換。
并發(fā)編程的Java抽象