我有一个myThread类
注意:我正在使用Log.d来显示文本(Android)
public class MyThread extends Thread {
public MyThread() {
Log.d(logtag,"init");
}
@Override
public void run() {
Log.d(logtag,"run");
neverEndingFunction();
@Override
public void interrupt() {
super.interrupt();
stopNeverEndingFunction();
}
在我的主要内容中,我只是做了
my_thread = new MyThread();
my_thread.run();
Log.d(logtag,"Hello");
但问题是我的“Hello”永远不会显示,因为它卡在neverEndingFunction中。
我该如何解决这个问题?
答案 0 :(得分:12)
使用Thread#start()方法而非线程#运行启动线程。
将您的代码更改为以下内容:
my_thread = new MyThread();
my_thread.start();
使该线程开始执行; Java虚拟机调用 这个线程的run方法。
答案 1 :(得分:3)
您不应该自己调用run方法。把它留给JVM。使用start()方法调用run方法。您的代码不是创建线程,而是创建顺序程序