我想打印输出,如:
hi
hello
hi
hello
..
..
使用multithreading
的无限时间。我试过这个,但每当我运行代码然后变得不同时。
这是我的code
:
class Abc implements Runnable
{
public void run()
{
while(true)
{
System.out.println("Hello");
try
{
Thread.sleep(1000);
}
catch(Exception e)
{
}
}
}
}
public class ThreadDemo {
public static void main(String[] args) {
Abc obj = new Abc();
Thread t1 = new Thread(obj);
t1.start();
while(true){
System.out.println("Hi");
try{
Thread.sleep(1000);
}
catch(Exception e)
{
}
}
}
}
答案 0 :(得分:0)
实际上,两个线程已启动,但其中一个线程打印hi
而另一个hello
没有任何条件。
您可以使用共享的 volatile boolean 变量来确定是否应打印hello
或hi
。
例如,在ThreadDemo
:
public static volatile boolean isHello;
然后在线程run()
方法中,指定要打印的条件。
在打印Hello:
的线程中if (!ThreadDemo.isHello) {
System.out.println("Hello");
ThreadDemo.isHello = true;
}
和另一个:
if (ThreadDemo.isHello) {
System.out.println("Hi");
ThreadDemo.isHello = false;
}