A第10章Java的线程处理 10.1.3使用 Runnable接口 在不少场合,你不能重新定义类的父母,或者不能 定义派生的线程类,但也许你的类的层次要求父类为特 定的类,然而,Java语言是不支持多父类的。在这些情 况下,可以通过 Runnable接口来实现多线程的功能。 实际上, Thread类本身也实现了 Runnable接口 个 Runnable接口提供了一个 public void run()方法。下面 我们来看一个用 Runnable接口创建线程的实例
第10章 Java的线程处理 10.1.3 使用Runnable接口 在不少场合,你不能重新定义类的父母,或者不能 定义派生的线程类,但也许你的类的层次要求父类为特 定的类,然而,Java语言是不支持多父类的。在这些情 况下,可以通过Runnable接口来实现多线程的功能。 实际上,Thread类本身也实现了Runnable接口。一 个Runnable接口提供了一个public void run()方法。下面 我们来看一个用Runnable接口创建线程的实例
H 第10章Java的线程处 例102 Runnable Test java public class runnableTest public static void main( String args D) Test r= new Testo Thread t=new Thread(r) t start
第10章 Java的线程处理 例10.2 RunnableTest.java public class RunnableTest { public static void main(String args[]) { Test r = new Test(); Thread t = new Thread(r); t.start(); } }
H 第10章Java的线程处 class lest implements runnable public void runo while(true) System. out printIn ("Hello +1++) if(i=10) rea
第10章 Java的线程处理 class Test implements Runnable { int i; public void run() { while (true) { System.out.println("Hello " + i++); if (i == 10) break;
H 第10章Java的线程处 上面程序的运行结果非常简单,这里不再列出 使用 Runnable接口,需要我们实现runO方法。我们也 需要创建 Thread对象的一个实例,它最终是用来调用 runO方法的。首先, maino方法构造了Test类的一个实 例r。实例r有它自己的数据,在这里就是整数i。因为 实例是传给 Thread的类构造函数的,所以r的整数i就是 线程运行时刻所操作的数据。线程总是从它所装载的 Runnable实例(在本例中,这个实例就是r)的rumn(方法 开始运行
第10章 Java的线程处理 } } } 上面程序的运行结果非常简单,这里不再列出。 使用Runnable接口,需要我们实现run()方法。我们也 需要创建Thread对象的一个实例,它最终是用来调用 run()方法的。首先,main()方法构造了Test类的一个实 例r。实例r有它自己的数据,在这里就是整数i。因为 实例r是传给Thread的类构造函数的,所以r的整数i就是 线程运行时刻所操作的数据。线程总是从它所装载的 Runnable实例(在本例中,这个实例就是r)的run()方法 开始运行
H 第10章Java的线程处 一个多线程编程环境允许创建基于同一个 Runnable 实例的多个线程。这可以通过以下方法来做到: Thread tI= new Thread(r) Thread t2=new Thread(r) 此时,这两个线程共享数据和代码
第10章 Java的线程处理 一个多线程编程环境允许创建基于同一个Runnable 实例的多个线程。这可以通过以下方法来做到: Thread t1= new Thread(r); Thread t2= new Thread(r); 此时,这两个线程共享数据和代码