线程的状态转换以及基本操作
1. 新建线程
一个 java 程序从 main()方法开始执行,然后按照既定的代码逻辑执行,看似没有
其他线程参与,但实际上 java 程序天生就是一个多线程程序,包含了:(1)分
发处理发送给给 JVM 信号的线程;(2)调用对象的 finalize 方法的线程;(3)
清除 Reference 的线程;(4)main 线程,用户程序的入口。那么,如何在用户
程序中新建一个线程了,只要有三种方式:
通过继承 Thread 类,重写 run 方法;
通过实现 runable 接口;
通过实现 callable 接口这三种方式,下面看具体 demo。
public class CreateThreadDemo { public static
void main(String[] args) { //1.继承 Thread
Thread thread = new Thread() { @Override
public void run()
{ System.out.println("继承 Thread");
super.run(); } };
thread.start(); //2.实现 runable 接口
Thread thread1 = new Thread(new Runnable()
{ @Override public void run()
{ System.out.println("实现 runable
接口"); } });
thread1.start(); //3.实现 callable 接口
ExecutorService service =
Executors.newSingleThreadExecutor();
Future<String> future = service.submit(new Callable()
{ @Override public String
call() throws Exception { return "通
过实现 Callable 接口"; } });
try { String result = future.get();
System.out.println(result); } catch
(InterruptedException e)
{ e.printStackTrace(); } catch
(ExecutionException e)
{ e.printStackTrace(); } }
}