基于上一篇Thread类的学习我们知道,因为不能避免OOP单继承局限性,Thread类存在缺陷,如此我们开始学习Runnable接口,在实现多线程的同时,还避免单继承局限性,灵活方便,方便同一个对象被多个线程使用
2.1 创建一个类实现接口Runnable,并创造出run()方法,在run方法体里面写一个循环打印,代表子线程运行逻辑
public class Liaozhanhao implements Runnable { @Override public void run() { //run方法线程体 for (int i = 0; i < 200; i++) { System.out.println("我在看代码"+i); } } }
2.2 创建一个主类,在主类里面创建实现Runnble接口的对象,并创建线程对象,通过线程对象来开启我们的子线程,同时我们在主类里面也写一个循环打印,代表主线程运行逻辑
public static void main(String[] args) { //创建runnable接口的实现类对象 Liaozhanhao liaozhanhao = new Liaozhanhao(); //创建线程对象,通过线程对象来开启我们的线程,代理 new Thread(liaozhanhao).start(); for (int i = 0; i < 1000; i++) { System.out.println("我在学习多线程"); } }
结果分析
由结果我们可以看到,虽然通过Runnable接口实现了方便简洁,同时可以随意多个对象执行多线程,存在并发冲突的问题,这个问题我们要留到后面解决了。
如此,大家可以通过上面的简单代码示例去初步学习Runnable接口