创建线程一般都是通过继承Thread类来实现的,在Java语言中还可以通过实现Runnable接口来创建线程。
Runnable接口在java.lang包内,Runnable接口中只有一个run()方法,用来定义线程运行体。
案例1:建立MyRunner类,实现Runnable接口,并在run()方法中编写线程功能代码。
在thread包下新建MyRunner类。代码如下:
package thread;
/**
* @ClassName: MyRunner
* @Description: 多线程操作(使用Runnable接口创建线程)案例1
* @author 编程训练营
* @date
*
*/
public class MyRunner implements Runnable {
/**
* <p>Title: run</p>
* <p>Description: </p>
* @see java.lang.Runnable#run()
*/
@Override
public void run() {
// TODO Auto-generated method stub
// 在线程中执行的代码
for( int i = 0; i<100; i++ ) {
System.out.println("MyRunner:" + i);
}
}
}MyRunner类实现了Runnable接口,并在run()方法中编写了线程功能代码。定义好MyRunner类后,需要把MyRunner类的实例作为参数传入到Thread的构造方法中,来创建一个新线程。
在thread包下新建MyRunnerTest测试类,启动MyRunner线程。代码如下:
package thread;
/**
* @ClassName: MyRunnerTest
* @Description: 多线程操作(使用Runnable接口创建线程)案例1
* @author 编程训练营
* @date
*
*/
public class MyRunnerTest {
/**
* @Title: main
* @Description: Java程序入口main方法
* @param @param args 参数
* @return void 返回类型
* @throws
*/
public static void main(String[] args) {
// 实例化Thread对象,传入MyRunner实例
Thread thread = new Thread(new MyRunner());
// 启动线程
thread.start();
}
}在MyRunnerTest类的main方法中,实例化Thread对象,并将MyRunner类的实例作为参数传入进去,然后调用Thread对象的start方法启动线程。
程序执行结果如下图所示:
