创建线程的第二种方式

这里我们通过实现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方法。

 

posted @ 2021-02-24 21:43  EvanTheBoy  阅读(53)  评论(0)    收藏  举报