4、死鎖
在多執行緒操作中,多個執行緒有可能同時處理同乙個資源,這就是多執行緒中的共享資料
解決資料共享問題必須使用同步,所謂的同步就是指多個執行緒在同乙個時間段內只能有乙個執行緒執行指定的**,其他執行緒要等待此執行緒完成之後才可以繼續進行執行
當寫synchronized快時,有幾個簡單的準則可以遵循,這些準則在避免死鎖和效能危險的風險方面大有幫助
(1):使**塊保持簡短。把 不隨執行緒變化的預處理和後處理移出synchronized塊
(2):不要阻塞。如inputstream.read();
(3):在持有鎖的時候,不要對其他物件呼叫方法
synchronized(要同步的物件)
class myrunable5 implements runnable catch (interruptedexception e)
system.out.println("您購買的票已剩餘:"+ticket+"張");}}
}}
}
//同步方法:同步的物件是當前物件this
private
synchronized
void
method() catch (interruptedexception e)
system.out.println("您購買的票已剩餘:" + ticket + "張");
}}
//互斥鎖
reentrantlock lock = new reentrantlock();
//lock實現同步
private
void
method2() catch (interruptedexception e)
system.out.println("您購買的票已剩餘:" + ticket + "張");
}}finally
}
過多的同步有可能出現死鎖,死鎖的操作一般是在程式執行時候才有可能出現的 執行緒同步與死鎖
執行緒同步與死鎖 課程大綱 一 多執行緒共享資料 1 在多執行緒的操作中,多個執行緒有可能同時處理同乙個資源,這就是多執行緒中的共享資料。二 執行緒同步 1 解決資料共享問題,必須使用同步,所謂同步就是指多個執行緒在同乙個時刻只能有乙個執行緒執行指定 其他執行緒要等到該執行緒執行結束之後才能繼續執行...
執行緒 同步與死鎖
一,本章目標 了解執行緒同步的作用 了解同步 塊及同步方法的作用 了解死鎖的產生 二,具體內容 說明 在多執行緒的開發中,同步與死鎖的概念是非常重要的,一定要掌握以下幾點 那裡需要絨布 如何實現同步,了解即可 實現同步之後有什麼 問題引出 以賣火車票為例,如果想買火車票,可以去火車站購買或者去各個售...
執行緒死鎖與同步
同步死鎖是指兩個或兩個以上的程序在執行過程中,由於競爭資源或者由於彼此通訊而造成的一種阻塞的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序。當系統中供多個程序共享的資源如印表機,其數目不足以滿足各個程序的需要時,會引起各個程序對...