线程方法接收参数示例,Java的两种线程实现方式区别

打印 上一主题 下一主题

主题 661|帖子 661|积分 1983

The difference beteen two way

总所周知,Java实现多线程有两种方式,分别是继承Thread类和实现Runable接口,那么它们的区别是什么?
继承 Thread 类:
通过继承 Thread 类,你可以创建一个直接表示线程的类。你可以覆盖 Thread 类中的 run 方法来定义线程的逻辑。当调用 start 方法启动线程时,会执行该类中的 run 方法。
优点:简单直观,可以直接访问线程的方法和属性。
缺点:由于 Java 不支持多重继承,因此如果你的类已经继承了其他类,就无法再继承 Thread 类。此外,由于继承是一种静态的方式,它限制了类的扩展性。
实现 Runnable 接口:
通过实现 Runnable 接口,你可以将线程的逻辑封装在一个独立的类中。这个类只需要实现 Runnable 接口中的 run 方法。然后,你可以将该类的实例传递给 Thread 对象,并调用 start 方法启动线程。
优点:避免了单继承的限制,提高了代码的灵活性和可维护性。可以在多个类中共享同一个线程对象。
缺点:在访问线程的方法和属性时需要通过 Thread 对象来间接访问。
总结:
还是实现 Runnable 比较好,代码比较灵活,避免了单继承的局限性。
Method receiving parameters within a thread

Defind a Sub Thread
  1. public class MyThread extends Thread {
  2.     private String parameter;
  3.     public MyThread(String parameter) {
  4.         this.parameter = parameter;
  5.     }
  6.     @Override
  7.     public void run() {
  8.         // 在这里编写子线程的逻辑,可以使用参数 parameter
  9.         System.out.println("子线程执行,参数为:" + parameter);
  10.     }
  11. }
复制代码
Main Thread to call Sub Thread
  1. // 在主线程中创建并启动子线程
  2. public class MainThread {
  3.     public static void main(String[] args) {
  4.         String parameter = "Hello, World!";
  5.         MyThread thread = new MyThread(parameter);
  6.         thread.start();
  7.         // 主线程继续执行其他操作
  8.         System.out.println("主线程继续执行");
  9.     }
  10. }
复制代码
在上面的示例中,我们定义了一个实现了 Runnable 接口的类 MyRunnable。该类的构造函数接收一个参数,并将其保存在成员变量 parameter 中。在 run 方法中,我们可以使用该参数执行子线程的逻辑。
然后,在主线程中,我们创建了一个子线程,并将 MyRunnable 对象作为参数传递给 Thread 构造函数。通过调用 start 方法来启动子线程。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表