Java线程的三种创建方式
1. 继承Thread类
首先,我们了解这个类的时候可以查看一下这类的源码,我们进入源码的时候就会看到,其实这个类是实现的了Runable接口的。
package com.demo;
public class ThreadDemo1 extends Thread {
@Override
public void run(){
for (int i = 0; i< 100l; i++) {
System.out.println("我的线程业务代码");
}
}
}
public static void main(String [] args) {
//启动线程方法
ThreadDemo1 demo1 = new ThreadDemo1();
demo1.start();
}
2. 实现Runable接口
package com.demo;
public class RunnableDemo1 implements Runnable {
@Override
public void run() {
for (int i = 0; i< 100 ; i++) {
System.out.println("Runnable的执行方法");
}
}
}
public static void main(String [] args) {
//启动线程方法
RunnableDemo1 demo1 = new RunnableDemo1();
new Thread(demo1).start();
}
3. 实现Callable接口
package com.demo;
import java.util.concurrent.Callable;
public class CallableDemo1 implements Callable<Boolean> {
@Override
public Boolean call() throws Exception {
System.out.println("我的业务执行逻辑代码代码");
return Boolean.FALSE;
}
public static void main(String [] args) {
CallableDemo1 callableDemo1 = new CallableDemo1();
//视野刀了多少个就设置多少个
ExecutorService ser = Executors.newFixedThreadPool(1);
//这边启用了一个,所以进行了赋值
Future<Boolean> booleanFuture1 = ser.submit(callableDemo1);
//获取线程执行的结果,然后再进行业务上的判断
boolean r1 = booleanFuture1.get();
//关闭
ser.shutdown();
}