好吧,我是线程新手,所以我的问题可能很愚蠢。但我要问的是,我有这个类,让我们说它的名字是MyClass.java。然后在其中一个方法中使用callThread(),我想打印出来,睡眠,并将控制权返回给MyClass.java的方法。我该怎么做?
目前,我的代码是这样的:
class MyClass {
void method()
{
MyThread thread = new MyThread();
thread.run();
// do some other stuff here...
}
}
然后,这将是MyThread:
class MyThread implements Runnable {
public void run()
{
while (true)
{
System.out.println("hi");
this.sleep(1000);
}
}
}
我希望MyThread会打印“hi”,将控件传回MyClass,然后在一秒后再打印“hi”。相反,MyThread冻结了我的整个程序,因此在那里使用它根本不起作用......
有什么方法吗?
答案 0 :(得分:10)
你应该是callig thread.start()
手册中的更多内容:Defining and Starting a Thread
答案 1 :(得分:3)
您必须调用Thread类的start()方法。
MyThread thread = new MyThread();
Thread th=new Thread(thread);
th.start();
sleep()是Thread类的实例方法,MyThread类不是线程(它是可运行的),所以你需要使用Thread.currentThread().sleep()
方法。
while (true)
{
System.out.println("hi");
try{
Thread.currentThread().sleep(1000);
}catch(Exception ex){ }
}
阅读this教程以获取有关线程的更多信息。