單例類 public class MySingleton2 { |
線程類 調(diào)用單例類 |
測試代碼:,起10個(gè)線程,都引用同一實(shí)例(單實(shí)例多線程) |
執(zhí)行結(jié)果: 看出現(xiàn)多個(gè)不同的單例類的實(shí)例,違反了單例的規(guī)范. com.machome.singleton.MySingleton2@1270b73:19336051 com.machome.singleton.MySingleton2@60aeb0:6336176 com.machome.singleton.MySingleton2@16caf43:23899971 com.machome.singleton.MySingleton2@66848c:6718604 com.machome.singleton.MySingleton2@8813f2:8918002 com.machome.singleton.MySingleton2@1d58aae:30771886 com.machome.singleton.MySingleton2@83cc67:8637543 com.machome.singleton.MySingleton2@e09713:14718739 com.machome.singleton.MySingleton2@de6f34:14577460 com.machome.singleton.MySingleton2@156ee8e:22474382 |
public synchronized static MySingleton3 getInstance() throws InterruptedException { |
執(zhí)行:問題解決, com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 |
public static MySingleton3 getInstance() throws InterruptedException { |
執(zhí)行: 仍出現(xiàn)多個(gè)實(shí)例 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@60aeb0:6336176 com.machome.singleton.MySingleton3@16caf43:23899971 com.machome.singleton.MySingleton3@66848c:6718604 com.machome.singleton.MySingleton3@8813f2:8918002 com.machome.singleton.MySingleton3@1d58aae:30771886 com.machome.singleton.MySingleton3@83cc67:8637543 com.machome.singleton.MySingleton3@e09713:14718739 com.machome.singleton.MySingleton3@de6f34:14577460 com.machome.singleton.MySingleton3@156ee8e:22474382 |
|
執(zhí)行: 終于正確了 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 com.machome.singleton.MySingleton3@1270b73:19336051 |
|
|