使用Runnable创建线程
1 package com.cky.runner; 2 3 /** 4 * Created by chenkaiyang on 2017/12/2. 5 */ 6 public class MyRunnable implements Runnable{ 7 @Override 8 public void run() { 9 System.out.println("运行中"); 10 } 11 }
test类
1 package com.cky.test; 2 3 import com.cky.runner.MyRunnable; 4 5 /** 6 * Created by chenkaiyang on 2017/12/2. 7 */ 8 public class Test { 9 public static void main(String[] args){ 10 MyRunnable myRunnable = new MyRunnable(); 11 Thread thread = new Thread(myRunnable); 12 thread.start(); 13 System.out.println("运行结束"); 14 15 } 16 }
D:itjdk1.8injava -Didea.launcher.port=7532 "-Didea.launcher.bin.path=D:itideaIntelliJ IDEA 2016.3.3in" -Dfile.encoding=UTF-8 -classpath "D:itjdk1.8jrelibcharsets.jar;D:itjdk1.8jrelibdeploy.jar;D:itjdk1.8jrelibextaccess-bridge-64.jar;D:itjdk1.8jrelibextcldrdata.jar;D:itjdk1.8jrelibextdnsns.jar;D:itjdk1.8jrelibextjaccess.jar;D:itjdk1.8jrelibextjfxrt.jar;D:itjdk1.8jrelibextlocaledata.jar;D:itjdk1.8jrelibext
ashorn.jar;D:itjdk1.8jrelibextsunec.jar;D:itjdk1.8jrelibextsunjce_provider.jar;D:itjdk1.8jrelibextsunmscapi.jar;D:itjdk1.8jrelibextsunpkcs11.jar;D:itjdk1.8jrelibextzipfs.jar;D:itjdk1.8jrelibjavaws.jar;D:itjdk1.8jrelibjce.jar;D:itjdk1.8jrelibjfr.jar;D:itjdk1.8jrelibjfxswt.jar;D:itjdk1.8jrelibjsse.jar;D:itjdk1.8jrelibmanagement-agent.jar;D:itjdk1.8jrelibplugin.jar;D:itjdk1.8jrelib
esources.jar;D:itjdk1.8jrelib
t.jar;F:springboot hreaddemooutproduction hreaddemo;D:itideaIntelliJ IDEA 2016.3.3libidea_rt.jar" com.intellij.rt.execution.application.AppMain com.cky.test.Test
运行结束
运行中
Process finished with exit code 0
因为java是单根集继承,不支持多继承,为了改变这个限制,使用runnable接口实现多线程
注:Thread类也实现了Runnerable接口,那说明了构造函数不仅仅可以传入runnable接口对象,也可以传递Thread对象,这样做完全可以将一个Thread对象的run方法交给其他线程调用