java开启两个线程争抢
时间: 2023-06-28 09:08:29 浏览: 55
可以使用Java中的多线程机制来实现两个线程争抢。下面是一个示例代码:
```java
public class ThreadDemo implements Runnable {
private int count = 10;
public synchronized void run() {
while (count > 0) {
count--;
System.out.println(Thread.currentThread().getName() + " count = " + count);
}
}
public static void main(String[] args) {
ThreadDemo demo = new ThreadDemo();
Thread t1 = new Thread(demo, "Thread1");
Thread t2 = new Thread(demo, "Thread2");
t1.start();
t2.start();
}
}
```
在这个示例中,我们定义了一个Runnable接口的实现类ThreadDemo,其中包含了一个计数器count,并在run方法中使用synchronized关键字来保证线程安全。在main方法中,我们创建了两个线程t1和t2,并将它们都传入ThreadDemo的实例中进行执行。
当我们运行这个程序时,可以看到两个线程争夺计数器的值,输出结果如下:
```
Thread1 count = 9
Thread2 count = 8
Thread1 count = 7
Thread2 count = 6
Thread1 count = 5
Thread2 count = 4
Thread1 count = 3
Thread2 count = 2
Thread1 count = 1
```
注意,由于使用了synchronized关键字,所以每次只能有一个线程访问run方法中的代码块,保证了线程安全。