Java 线程创建方法之一——实现Runnable接口、匿名内部类写法

旧城等待, 2023-02-23 14:28 99阅读 0赞

线程的创建方式——实现Runnable接口

多线程是很有用的,我们在进程中创建线程的方式有三种:

  1. 直接定义一个类继承线程类Thread。重写run()方法,创建线程对象
    调用线程对象的start()方法启动线程。
  2. 定义一个饯程任务类实现Runnable接口,重写run()方法, 创建践程任务对象,把
    线程任务对象包装成线程对象,调用线程对 象的start()方法启动线程。
  3. 实现Callable接口(拓展)。

Thread 的构造器

  1. public Thread(){ }
  2. public Thread(String name){ }
  3. public Thread(Runnable target){ }
  4. public Thread(Runnable target,String name){ }

实现Runnable接口的方式。

  1. 创建一个线程任务类实现Runnable接口。
  2. 重写run()方法。
  3. 创建一个线程任务对象。
  4. 把线程任务对象包装成线程对象
  5. 调用线程对象的start()方法启动线程。

    public class ThreadDemo2 {

    1. public static void main(String[] args) {
    2. //3.创建一个线程任务对象(不是线程对象,只是执行线程任务的)
    3. Runnable target = new MyRunnable();
    4. //4.把线程任务对象包装成线程
    5. //Thread t1 = new Thread(target);
    6. Thread t2 = new Thread(target,"线程1号");
    7. //5.调用start方法
    8. t2.start();
    9. //主线程加个任务
    10. for (int i = 0; i < 10 ;i++){
    11. System.out.println(Thread.currentThread().getName()+"=>"+i);
    12. }
    13. }

    }

    //1.创建一个线程任务类实现runnable接口
    class MyRunnable implements Runnable{

    1. //2.重写run方法
    2. @Override
    3. public void run() {
    4. for (int i = 0 ;i < 10 ; i++){
    5. System.out.println(Thread.currentThread().getName()+"=>"+i);
    6. }
    7. }

    }

优点:

  1. 线程任务类只是实现了Runnable接口,可以继续继承其他类,而且可以继续实现其他的功能
  2. 同一个线程任务对象可以被包装成多个线程对象
  3. 适合多个相同的程序代码的线程去共享同一个资源
  4. 实现解棍操作,代码可以被多个线程共享,线程任务代码和线程独立。

匿名内部类写法

  1. public class ThreadDemo3 {
  2. public static void main(String[] args) {
  3. Thread t = new Thread(new Runnable() {
  4. @Override
  5. public void run() {
  6. for (int i = 0; i < 10; i++) {
  7. System.out.println(Thread.currentThread().getName() + "=>" + i);
  8. }
  9. }
  10. });
  11. t.start();
  12. //主线程加个任务
  13. for (int i = 0; i < 10; i++) {
  14. System.out.println(Thread.currentThread().getName() + "=>" + i);
  15. }
  16. }
  17. }

发表评论

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

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

相关阅读