- 继承Thread
import lombok.SneakyThrows;
public class java_thread extends Thread {
public static void main(String args[]) {
System.out.println("main thread run before");
new java_thread().start();
System.out.println("main thread run ");
}
@SneakyThrows
public synchronized void run() {
Thread.sleep(1000L);
System.out.println("sub thread run ");
}
}
- 实现Runnable接口
public class java_thread implements Runnable {
public static void main(String args[]) {
(new Thread(new java_thread())).start();
System.out.println("main thread run ");
}
public void run() {
System.out.println("sub thread run ");
}
}
3.直接在函数体使用
void java_thread()
{
Thread t = new Thread(new Runnable(){
public void run(){
mSoundPoolMap.put(index, mSoundPool.load(filePath, index));
getThis().LoadMediaComplete();
}});
t.start();
}
4.比较
继承Thread优点
1.可以将线程类抽象出来,当需要抽象工厂设计模式时
2.多线程同步
实现Runnable 接口优点
1.适合多个相同程序代码的线程处理同一个资源
2.避免Java单继承的限制
3.增加程序健壮性,代码可以被多个线程共享,代码和数据独立
在函数使用的优点
1.使用方便
2,缩小作用域