JAva同期Singletonモード

7945 ワード

publicclassTestSingletonSynchronizedimplementsjava.lang.Runnable{
Threadthread;

publicstaticvoidmain(Stringargs[]){
TestSingletonSynchronizedt=newTestSingletonSynchronized();
}

publicTestSingletonSynchronized(){
SynchronizedDatadatabase=SynchronizedData.getInstance("products");

thread=newThread(this,"second");
thread.start();

System.out.println("Thisisthe"+database.getName()+"database.");
}

publicvoidrun(){
SynchronizedDatadatabase=SynchronizedData
.getInstance("employees");

System.out.println("Thisisthe"+database.getName()+"database.");
}
}

classSynchronizedData{
privatestaticSynchronizedDatasingleObject;
privateintrecord;
privateStringname;

privateSynchronizedData(Stringn){
name=n;
record=0;
}

publicstaticsynchronizedSynchronizedDatagetInstance(Stringn){
if(singleObject==null){
singleObject=newSynchronizedData(n);
}

returnsingleObject;
}

publicvoidedit(Stringoperation){
System.out.println("Performinga"+operation+"operationonrecord"
+record+"indatabase"+name);
}

publicStringgetName(){
returnname;
}
}