Cuatro formas comunes de crear hilos en Java
1. Reescribe el método de ejecución de la clase Thread.
1.1, el nuevo objeto Thread anula de forma anónima el método de ejecución
new Thread(){
@Override
public void run() {
System.out.println("进程创建方式1.1");
}
}.start();
1.2, heredar Thread, reescribir el método de ejecución
class MyThread extends Thread{
@Override
public void run() {
System.out.println("进程创建方式1.2");
}
}
new MyThread().start();
2. Implemente la interfaz Runable y vuelva a escribir el método de ejecución.
2.1, nuevo objeto Runable, método de ejecución de reescritura anónima
Runnable runnable = new Runnable(){
@Override
public void run() {
System.out.println("进程创建方式2.1");
}
};
new Thread(runnable).start();
2.2. Implementar la interfaz Runable y reescribir el método de ejecución
class MyRuncable implements Runnable{
@Override
public void run() {
System.out.println("进程创建方式2.2");
}
}
new Thread(new MyRuncable()).start();
3. Implemente la interfaz invocable y use la clase FutureTask para crear subprocesos.
class MyCallable implements Callable{
@Override
public String call() throws Exception {
System.out.println("调用 call");
return "进程创建方式3";
}
}
FutureTask ft = new FutureTask(new MyCallable());
new Thread(ft).start();
try {
System.out.println("输出结果:"+ft.get());
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
4. Utilice el grupo de subprocesos para crear e iniciar subprocesos
ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
singleThreadExecutor.submit(new Runnable() {
@Override
public void run() {
System.out.println("进程创建方式4");
}
});
singleThreadExecutor.shutdown();