android中的java多线程警告

hjzp0vay  于 2021-07-13  发布在  Java
关注(0)|答案(3)|浏览(330)

我有一个多线程的问题。警告是:“menuthread类型的方法start()未定义”。我该怎么办

public void run() {
   if (whichMethodToCall == 1) {

   }
   else if (whichMethodToCall == 2) {

   }
}
k4ymrczo

k4ymrczo1#

menuthread正在实现 Runnable 接口。它不是一根线。如果要在不同的线程上运行,请将mythread的示例传递给线程对象

Thread thread = new Thread(new MenuThread(i));
 thread.start();
hgc7kmma

hgc7kmma2#

使用 new Thread(thread).start() .

ddrv8njm

ddrv8njm3#

有问题的代码:

MenuThread thread = new MenuThread(i);

上线创建 MenuThread 哪个实现了 Runnable 接口。它仍然不是一根线,因此 thread.start(); 是非法的。
创建线程的正确方法 Runnable 示例

MenuThread thread = new MenuThread(i);
(new Thread(thread)).start();

可以用两种不同的方法创建线程。请看一下有关线程创建的oracle文档
创建线程示例的应用程序必须提供将在该线程中运行的代码。有两种方法: Provide a Runnable object. 这个 Runnable 接口定义了一个方法run,用于包含线程中执行的代码。 The Runnable object is passed to the Thread constructor ```
public class HelloRunnable implements Runnable {

public void run() {
    System.out.println("Hello from a thread!");
}

public static void main(String args[]) {
    (new Thread(new HelloRunnable())).start();
}

}
``` Subclass Thread . thread类本身实现 Runnable ,尽管它的run方法什么也不做。应用程序可以子类化 Thread ,提供自己的run实现

public class HelloThread extends Thread {

    public void run() {
        System.out.println("Hello from a thread!");
    }

    public static void main(String args[]) {
        (new HelloThread()).start();
    }

}

相关问题