代码之家  ›  专栏  ›  技术社区  ›  amit_vickey

Java-带有成员函数的启动线程

  •  -3
  • amit_vickey  · 技术社区  · 7 年前

    我有一个类扩展了“线程”类。这个子类已经实现了run()方法。但是有没有可能在同一个子类中创建另一个用户定义的方法(比如saveData(Object obj)),而不是调用start()方法,而是调用saveData()来创建一个新线程并执行saveData()方法中的指令。

    如果我创建子类的对象并对该对象调用saveData(),会发生什么。?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Solomon Slow    7 年前

    这个 java.lang.Thread 类与任何其他Java类没有本质上的区别。它有方法,当你调用它们时,它们会做它们所做的。

    A java.lang.Thread线程 不是一个 线 ,与 java.awt.Window 窗口 . 线程和窗口属于操作系统,相应的Java对象是用于与操作系统接口的“句柄”。这个 Thread t.start() .

    假设您定义了一个扩展 线程

    class MyThread extends Thread {
        ...
        public void saveData(...) { ... }
        ...
    }
    

    如果创建子类的对象并对该对象调用saveData(),会发生什么。?

    你在问我们?但是 是写方法的人!!当程序调用时 my_thread.saveData(...) ,这就像调用在定义的任何其他类中编写的任何其他方法一样。是你写的方法。它会做任何你放在那些卷曲牙套。


    唯一有点神奇的是 班级是最重要的 start() 方法。如果你写这个:

    class MyClass extends Thread {
        ...
        public void saveData(...) { ... }
        public void run() { ... }
        ...
    }
    

    当你的程序调用 new MyThread().start() run() 方法。。。

    ……你也写了,你放进去什么都可以做 它的 花括号。

    如果你愿意的话 saveData() 在新线程中调用,然后确保从 运行()