A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

创建线程方法二——实现Runnable接口

问题来源:
如果仍然继承Extends类,
如果一个程序中有多个线程同时需要共享数据, 
共享数据可以把他定义成静态,但是这样, 他的生命周期会很长, 不建议;
因此可以定义一个线程, 并让这个线程都去开启执行start(), 然而这样做是没有意义的,
就会提示线程状态出错, 因为已经运行的程序不需要再次开启的, 所以继承Extends类就不太靠谱了,


所以,采用创建线程的第二种方法, 声明实现Runnable接口的类,
原理:
Runnable接口应该由那些打算通过某一线程执行这个实现Runnable接口的类的实例来实现
他为非Thread子类的类(执行这个实现Runnable接口的)提供了一种激活方式。
Runnable接口中的抽象方法只有一个run(),
这个run()的作用:将需要执行另一条路径的代码(明确要运行什么代码)存储在这里,
然后实现Runnable接口的类的对象,创建一个线程
启动该线程将导致在独立执行的线程中执行这个对象的run方法,
如何来创建这个线程呢?
通过创建Thread类的对象,来调用这个有参的构造方法

thread的构造函数中,就有这个那么就在new thread对象的同时, 就指定run方法所属对象
这样就ok了。















0 个回复

您需要登录后才可以回帖 登录 | 加入黑马