java同步的使用条件

美女程序员鼓励师

1、为了保持跨线程的正确可见性,必须使用synchronized或volatile。

2、读取可能是另一个线程最终写入的变量。

3、写一个可能被另一个线程读取的变量。

实例

class SellTicket implements Runnable {

private int tickets = 10;

 

public void run() {

 

while (true) {

if (tickets > 0)

sell();

else

return;

}

 

}

 

public synchronized void sell() {

if (tickets > 0) {

System.out.println(Thread.currentThread().getName() + "卖出第" + tickets + "张票");

tickets--;

try {

Thread.sleep(500);

} catch (InterruptedException e) {

e.printStackTrace();

}

 

}

}

}

 

public class TicketTest {

public static void main(String args[]) {

SellTicket t = new SellTicket();

 

new Thread(t, "窗口1").start();

new Thread(t, "窗口2").start();

new Thread(t, "窗口3").start();

 

System.out.println("主线程结束");

 

}

}

以上就是java同步的使用条件,希望对大家有所帮助。更多Java学习指路:Java基础

推荐操作环境:windows7系统、java10版,DELL G3电脑。

以上是 java同步的使用条件 的全部内容, 来源链接: utcz.com/z/546364.html

回到顶部