线程的三种创建方式
来源:互联网 发布:南方电网面试 知乎 编辑:程序博客网 时间:2024/05/17 08:21
public class Web12306 {public static void main(String[] args) throws InterruptedException, ExecutionException {// 方式 1 继承Thread类,重写run方法ThreadTest01 test01 = new ThreadTest01();test01.start();// 方式2 实现Runnable接口,重写run方法 使用静态代理调用线程ThreadTest02 test02 = new ThreadTest02();Thread thread = new Thread(test02);thread.start();// 方式3 实现Callable接口,重写call方法ExecutorService service = Executors.newFixedThreadPool(1);ThreadTest03 test03 = new ThreadTest03();Future<Integer> result = service.submit(test03);//System.out.println(result); 返回的是 java.util.concurrent.FutureTask@154174f9Integer num=0;num =result.get();System.out.println(num);service.shutdown();}}// 多线程的三种方式class ThreadTest01 extends Thread{@Overridepublic void run() {for(int i =0;i<20;i++){System.out.println("ThreadTest01");}}}class ThreadTest02 implements Runnable{@Overridepublic void run() {for(int i =0;i<20;i++){System.out.println("ThreadTest02");}}}class ThreadTest03 implements Callable<Integer>{Integer in = 10;@Overridepublic Integer call() throws Exception {for(int i =0;i<100;i++){System.out.println("ThreadTest03");/*if(i==20){System.out.println(in);return this.in;*/}//}return in;}}
优缺点比较:
继承Thread类:不利于再继承其他类;
实现Runnable接口:没有返回值,不能抛出异常;优点,可以使用多个代理代理同一个对象。
实现Callable接口:代码略繁琐。优点有返回值
阅读全文
0 0
- java创建线程的三种方式
- iOS创建线程的三种方式
- iOS创建线程的三种方式
- 创建线程的三种方式浅析
- java创建线程的三种方式
- 多线程-创建线程的三种方式
- 创建线程的三种方式
- 创建线程的三种方式
- NSThread创建线程的三种方式
- Java创建线程的三种方式
- Java线程创建的三种方式
- 创建线程对象的三种方式
- 创建线程的三种方式对比
- 【多线程】创建线程的三种方式
- Java创建线程的三种方式
- Java创建线程的三种方式
- 创建线程的三种方式
- 创建线程的三种方式
- 网页图片缩放的深入剖析
- java除法保留小数
- spring_bean的作用域
- 网络图片浏览器案例
- jenkins API调用错误集
- 线程的三种创建方式
- asio ssl 笔记
- typedef struct与struct的区别
- MongoDB数据库设计中6条重要的经验法则
- Andorid中的AIDL(一)
- OpenGL
- 常用的javaScript正则表达式
- 捷联惯性导航技术之卡尔曼滤波
- String 和StringBuffer和StringBuilder