实现Runnable接口创建线程类

女爷i 2021-09-19 14:48 535阅读 0赞

一 点睛

实现Runnable接口来创建并启动线程的步骤如下:

1 定义Runnable接口的实现类,重写该接口的run()方法,该run()方法的方法体是该线程的线程执行体。

2 创建Runnable实现类的实例,并以此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。

3 调用线程对象的start()方法来启动该线程。

二 代码

  1. // 通过实现Runnable接口来创建线程类
  2. public class SecondThread implements Runnable
  3. {
  4. private int i ;
  5. // run方法同样是线程执行体
  6. public void run()
  7. {
  8. for ( ; i < 100 ; i++ )
  9. {
  10. // 当线程类实现Runnable接口时,
  11. // 如果想获取当前线程,只能用Thread.currentThread()方法。
  12. System.out.println(Thread.currentThread().getName()
  13. + " " + i);
  14. }
  15. }
  16. public static void main(String[] args)
  17. {
  18. for (int i = 0; i < 100; i++)
  19. {
  20. System.out.println(Thread.currentThread().getName()
  21. + " " + i);
  22. if (i == 20)
  23. {
  24. SecondThread st = new SecondThread(); // ①
  25. // 通过new Thread(target , name)方法创建新线程
  26. new Thread(st , "新线程1").start();
  27. new Thread(st , "新线程2").start();
  28. }
  29. }
  30. }
  31. }

三 运行

  1. ......
  2. main 17
  3. main 18
  4. main 19
  5. main 20
  6. main 21
  7. main 22
  8. main 23
  9. main 24
  10. main 25
  11. main 26
  12. 新线程2 0
  13. main 27
  14. 新线程1 0
  15. 新线程1 2
  16. main 28
  17. 新线程2 1
  18. main 29
  19. 新线程1 3
  20. main 30
  21. 新线程2 4
  22. main 31
  23. 新线程1 5
  24. main 32
  25. ......

四 说明

1 创建的Runnable对象只能作为线程对象的target。

2 从运行结果可以看出:两个子线程的i变量是连续的,也就是采用Runnable接口的方式创建的多个线程可以共享线程的target类的实例变量,因为这个target被多个线程共享,

发表评论

表情:
评论列表 (有 0 条评论,535人围观)

还没有评论,来说两句吧...

相关阅读