继承 Thread 类
public class ExtendsThreadTest extends Thread {
@Override
public void run() {System.out.println("thread is running!");
}
public static void main(String[] args) {ExtendsThreadTest et1 = new ExtendsThreadTest();
et1.start();}
}
实现 Runnable 接口
public class RunnableTest implements Runnable{
@Override
public void run() {System.out.println("thread is running!");
}
public static void main(String[] args) {Thread t1 = new Thread(new RunnableTest());
t1.start();}
}
匿名内部类的两种写法
public class App {public static void main(String[] args){new Thread(new Runnable() {
@Override
public void run() {System.out.println("thread1 is running!");
}
}){}.start();
new Thread(){
@Override
public void run(){System.out.println("thread2 is running!");
}
}.start();}
}
基于 java.util.concurrent.Callable 工具类的实现,带返回值
public class CallableTest {public static void main(String[] args) throws Exception {Callable<Integer> call = new Callable<Integer>() {
@Override
public Integer call() throws Exception {System.out.println("thread is running!");
return 1;
}
};
FutureTask<Integer> task = new FutureTask<>(call);
Thread t = new Thread(task);
t.start();}
}
基于 java.util.Timer 工具类的实现
public class TimerTest {public static void main(String[] args) throws Exception {Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {System.out.println("thread is running!");
}
}, new Date());
}
}
基于 java.util.concurrent.Executors 工具类,基于线程池的实现
public class ThreadPoolTest {public static void main(String[] args) {
// 创建线程池
ExecutorService threadPool = Executors.newFixedThreadPool(10);
while(true) {threadPool.execute(new Runnable() { // 提交多个线程任务,并执行
@Override
public void run() {System.out.println(Thread.currentThread().getName() + "is running ..");
try {Thread.sleep(3000);
} catch (InterruptedException e) {e.printStackTrace();
}
}
});
}
}
}
更多信息可以关注我的个人博客:逸竹小站或逸竹小站
也欢迎关注我的公众号:yizhuxiaozhan,二维码: