创建线程的第二种方式
这里我们通过实现Runnable接口来创建线程:
MyRunnable.java:
1 package com.hw.second0224;
2 public class MyRunnable implements Runnable{
3 @Override
4 public void run() {
5
6 for(int i = 0;i < 100;i++)
7 {
8 Thread t = Thread.currentThread();
9 System.out.println(t.getName()+":"+i);
10 }
11 }
12
13 }
MyRunnableTestMethod.java:
1 package com.hw.second0224;
2 public class MyRunnableTestMethod {
3 public static void main(String[] args) {
4 MyRunnable ru = new MyRunnable();
5 Thread t = new Thread(ru);
6 t.start();
7 }
8 }
事实证明可以成功运行。不过要注意,ru里面是没有start方法的,因为它只是实现了一个接口嘛,里面就只有一个run方法,要想调用start方法,必须首先创建一个Thread的对象,并传递一个MyRunnable对象,然后通过对象调用start方法,就像上面代码中那样。
当然了,也是可以设置名字的,直接传递的时候解决:
1 Thread t = new Thread(ru,"线程1");
创建多个线程的方式也很简单:
MyRunnableTestMethod.java:
1 package com.hw.second0224;
2 public class MyRunnableTestMethod {
3 public static void main(String[] args) {
4 MyRunnable ru = new MyRunnable();
5 Thread t = new Thread(ru,"线程1");
6 t.start();
7
8 Thread th = new Thread(ru,"线程2");
9 th.start();
10 }
11 }
与之前创建线程的方式有所不同的是:这一次两个Thread对象调用的run方法,都位于同一个MyRunnable对象里面,而之前是各自的run方法。

浙公网安备 33010602011771号