2017-06-16 14 views
0

假設我有一個方法,裏面有一個同步塊。 我在同一個對象上有兩個線程。一個線程正在執行同步塊,因此其他線程將執行方法的其餘代碼。java線程同步塊

回答

1

在同步塊中執行第一個線程時,第二個線程將執行方法中塊之前的所有內容並等待進入同步塊。每當第一個線程退出同步塊時,第二個線程將繼續進入同步塊。

+0

空隙disNum()//代替方法將帶框 \t { \t \t同步(這){ \t \t \t的for(int i = 65; I <75; i ++在) \t \t \t { \t \t \t \t System.out.println(i); \t \t \t \t嘗試{ \t \t \t \t \t了Thread.sleep(1000); \t \t \t \t}趕上(InterruptedException的發送){ \t \t \t \t \t // TODO自動生成的catch程序塊 \t \t \t \t \t e.printStackTrace(); \t \t \t \t} \t \t \t} \t \t} \t \t \t 爲\t(INT J = 0;Ĵ<5; J ++) \t \t { \t \t的System.out.println(「非同步-----「); \t \t} \t \t \t} –

+0

正如我已經發布了Q個第一線進入到SYN塊,但第二個線程應該執行這個循環是不是SYN塊,但它不是發生的一部分。第二個線程正在等待如何? –

+0

循環不在同步塊之前。同步塊之前的所有內容都將由第2個線程執行。不在該塊之後。 – Zico