第一种 继承Thread
public class ThreadDemo extends Thread{
@Override
public void run() {
System.out.println("开启线程");
}
}
public class test {
public static void main(String[] args) {
ThreadDemo td = new ThreadDemo();
td.start();
}
}
第二种 通过Runnable接口
//实现Runnable接口
public class MyThread implements Runnable{
@Override
public void run() {
for (int i = 0; i < 100; i++) {
System.out.println(Thread.currentThread().getName() + "开启" + i);
}
}
}
public class test {
public static void main(String[] args) {
MyThread mt = new MyThread();
Thread thread = new Thread(mt);
thread.setName("一条线程");
thread.start();
}
}
第三种 实现Callable接口
public class callableDemo implements Callable<String> {
@Override
public String call() throws Exception {
for (int i = 0; i < 100; i++) {
System.out.println("你爱我吗?");
}
return "我爱你";
}
}
public class test {
public static void main(String[] args) throws ExecutionException, InterruptedException {
callableDemo cd = new callableDemo();
FutureTask<String> sf = new FutureTask<String>(cd);
Thread thread = new Thread(sf);
thread.start();
String s = sf.get(); //线程结束后,获取返回结果
System.out.println(s);
}
}