我想交替运行两个线程以写下字母。不知道我在代码中写错了什么,但是IDE无法解析.start()-Method。搜索了很多,但是找不到我的问题的答案。我为每一个主意而感激。
public class ABCThread_2 implements Runnable
{
private boolean issmall;
private boolean istall;
public ABCThread_2(boolean istall, boolean issmall)
{
this.istall = istall;
this.issmall = issmall;
}
public void run()
{
if(issmall)
{
for (char c = 'a'; c <= 'z'; c++)
{
try
{
Thread.sleep(250);
}
catch (InterruptedException e)
{
}
System.out.print(c);
}
}
else if(istall)
{
for (char c = 'A'; c <= 'Z'; c++)
{
try
{
Thread.sleep(250);
}
catch(InterruptedException e)
{
}
System.out.print(c);
}
}
}
public static void main(String [] args)
{
ABCThread_2 th1 = new ABCThread_2(false, true);
ABCThread_2 th2 = new ABCThread_2(true, false);
th1.start();
th2.start();
}
}
答案 0 :(得分:1)
Runnable
没有start
方法(ABCThread_2
将继承)。您一定要打{{1}}。在这种情况下,请使用您的Thread.start
创建Thread实例:
Runnable
答案 1 :(得分:1)
Runnable
没有start
方法。
您使Runnable
和Thread
感到困惑。 Thread
个接受Runnable
,并在新线程中调用它。
您需要显式创建一个新的Thread
:
// Create your Runnable
Runnable runnable = new ABCThread_2(false, true);
// Then give it to a new instance of a Thread to run
Thread th1 = new Thread(runnable);
// And now you can start the Thread
th1.start();
尽管您的命名在这里使事情变得混乱。 ABCThread_2
确实应该重命名为描述性名称,并且不能暗示它本身是Thread
的子类。