java创建线程有几种方式? 成都华信智原Java培训老师在课堂上为大家讲解过Java线程的创建,成都华信智原Java培训机构老师现在为大家分享一篇java创建线程有几种方式?这几种方式有什么优劣? 首先我们来看下老师给我们讲过的创建线程的“两种”方法: 一、继承Thread类创建线程子类 1.在这子类中重写run方法,在run方法内写线程任务代码 2.创建该子类实例,即是创建了一个线程实例 3.调用该实例的start方法来启动该线程 二、建一个类去实现Runnable接口 1.该类去实现接口的run方法,run方法内写线程任务代码 2.创建该类实例,把该实例当作一个标记target传给Thread类,如:Thread t = new Thread(该类实例);即创建一个线程对象 3.调用线程的star方法来启用该线程 扩展一下*三种老师课上没讲过的创建线程方法: 三、通过Callable接口和Future创建线程 1.创建一个类去实现Callable接口,实现该接口的call方法 CallableTest implements Callable{ public Integer call(){} } 2.创建实现Callable接口的类的实例,用FutureTask类来包装该对象 CallableTest ct = new CallableTest(); FutureTask ft = new FutureTask(ct); 3.用FutureTask对象作为Thread对象的target创建并启动新线程 Thread t = new Thread(ft); t.start(); 优劣: 二、三两种方式是实现某接口,可以去继承其他类,操作相对灵活,并且能多个纯种共享一个对象Thread t = new Thread(ft);里面的ft对象能多个线程共享,劣势是编程相对复杂 一种方式是继承Thread类,不能再继承其他类,编程相对简单