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