3
我正在瀏覽我公司中發現作者(已離開)的舊項目(Java),在不擴展Thread類或實現Runnable接口的情況下創建並運行線程。一件顯而易見的事情是,這個班是單身班。沒有使用線程池,或者java的新併發包。代碼片段概述如下 -在沒有擴展的情況下創建線程並執行
import java.sql.*;
import org.apache.log4j.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DataLookup
{
private static DataLookup _ref;
private DataLookup()
{
}
public static DataLookup getInstance()
{
if (_ref == null)
{
synchronized (DataLookup.class)
{
if (_ref == null)
{
_ref = new DataLookup();
}
}
return _ref;
}
}
/*
* Implementation Logic
*/
public void writeRecord(String a, String b, String c)
{
/*
* Implementation Logic
*/
Thread writerThread = new Thread()
{
public void run()
{
/*
* Implementation Logic
*/
}
}
writerThread.start();
}
}
這種方法是如何工作的 - 使用線程而不從Thread類擴展或實現Runnable接口? 使用這種方法有什麼優點和缺點(沒有擴展和實現)。
匿名類是擴展另一類的類。這就是你在這裏所做的,Thread的匿名子類。 – 2014-09-28 18:34:59
http://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html – 2014-09-28 18:36:13