1. 程式人生 > >多線程之同步代碼塊學習筆記

多線程之同步代碼塊學習筆記

dem 結束 pre 情況下 int 之前 pub 並發 代碼

1.什麽情況下需要同步 * 當多線程並發, 有多段代碼同時執行時, 我們希望某一段代碼執行的過程中CPU不要切換到其他線程工作. 這時就需要同步. * 如果兩段代碼是同步的, 那麽同一時間只能執行一段, 在一段代碼沒執行結束之前, 不會執行另外一段代碼. * 2.同步代碼塊 * 使用synchronized關鍵字加上一個鎖對象來定義一段代碼, 這就叫同步代碼塊 * 多個同步代碼塊如果使用相同的鎖對象, 那麽他們就是同步的 class Printer { Demo d = new Demo(); public static void print1() { synchronized(d){ //鎖對象可以是任意對象,但是被鎖的代碼需要保證是同一把鎖,不能用匿名對象 System.out.print("黑"); System.out.print("馬"); System.out.print("程"); System.out.print("序"); System.out.print("員"); System.out.print("\r\n"); } } public static void print2() { synchronized(d){ System.out.print("傳"); System.out.print("智"); System.out.print("播"); System.out.print("客"); System.out.print("\r\n"); } } }

多線程之同步代碼塊學習筆記