java使用线程有三种方式
1,创建一个类继承Thread类
示例代码
public class Thread1 {
public static void main(String[] args) {
ThreadA threadA = new ThreadA();
threadA.start();
System.out.println("这是主线程");
}
}
class ThreadA extends Thread {
@Override
public void run() {
super.run();
try {
Thread.sleep(500L);
} catch (Exception e) {
}
System.out.println("这是线程A");
}
}
运行结果如下:
这是主线程
这是线程A
2实现runnable接口
示例代码
public class Thread2 {
public static void main(String[] args) {
ThreadB threadB = new ThreadB();
new Thread(threadB).start();
System.out.println("这是主线程");
}
}
class ThreadB implements Runnable {
@Override
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("这是线程B");
}
}
运行结果如下
这是主线程
这是线程B
3 实现Callable,实现call()方法可以得到线程的执行结果
示例代码
public class Thread3 {
public static void main(String[] args) {
ThreadC threadC = new ThreadC();
FutureTask<String> future = new FutureTask<String>(threadC);
new Thread(future).start();
System.out.println("这是主线程,开始");
try {
System.out.println("得到的返回结果是" + future.get());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
class ThreadC implements Callable<String> {
@Override
public String call() throws Exception {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("这是线程B");
return "线程C";
}
}
运行结果如下
这是主线程,开始
这是线程B
得到的返回结果是线程C
代码比较简单,就不详解了