Java创建线程的几种方式
Java作为一种多线程编程语言,提供了多种创建线程的方式。根据线程的来源和使用方式,我们可以将其分为以下几种方式:
一、创建线程的几种方式
1.继承Thread类
static class Demo1 extends Thread{
@Override
public void run() {
System.out.println("方法执行了");
}
}
public static void main(String[] args) {
new Demo1().start();
//使用lambda表达式,代码看起来更简洁
new Thread(() -> System.out.println("方法执行了1")).start();
}
2.实现Runnable接口
static class Demo2 implements Runnable{
@Override
public void run() {
System.out.println("方法执行了");
}
}
public static void main(String[] args) {
new Thread(new Demo2()).start();
}
3.实现Callable接口
static class Demo3 implements Callable<Integer>{
@Override
public Integer call() throws Exception {
TimeUtils.sleep(10);
return 123;
}
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
Demo3 demo3 = new Demo3();
FutureTask<Integer> ft = new FutureTask<>(demo3);
new Thread(ft).start();
System.out.println(ft.get());
}
4.使用Executor框架
public static void main(String[] args) throws ExecutionException, InterruptedException {
Executor executor = Executors.newCachedThreadPool();
executor.execute(new Runnable() {
public void run() {
// 线程执行的代码
System.out.println("hello,world!");
}
});
}
二、使用Jconsole观察线程
JConsole是一个Java自带的工具,可以在bin目录下找到jconsole.exe文件。双击运行该文件即可启动JConsole。