我想同时运行两个不同运行方法的线程。可能吗?我在下面有简单的代码,但它们不兼容。我只想每5秒运行第一个线程,并且总是运行第二个线程。两个线程不同运行方法并行工作
public static int x = 0;
public static void main(String[] args) throws InterruptedException{
Runnable r1 = new Runnable() {
public void run() {
x = x + 1;
System.out.println("increment x");
}
};
Runnable r2 = new Runnable() {
public void run() {
System.out.println("x is "+x);
}
};
while(true){
Thread t1 = new Thread(r1);
Thread t2 = new Thread(r2);
t1.start();
t2.start();
t1.sleep(5000);
}
}
a)您不应该无限循环地开始运行已经线程。 b)您不会同步对x的访问。 c)并发控制台输出会导致问题。 – deviantfan
3)Thread.sleep()是静态的,可以让* current *线程,而不是被引用线程sleep(与静态方法一样,没有这种东西) –