竞态 synchronized关键字

多线程编程中对于同样的输入,结果时而正确时而错误的现象称为竞态。正确性与时间相关。
竞态的两种模式
read-modify-write
check-then-act
产生竞态的一般条件:
设O1,O2并发访问共享变量V的两个操作。如果一个线程在执行O1期间另一个线程在执行O2,那么无论O2是在执行读取还是更新V都会导致竞态。

避免竞态的方法
1.尽量使用局部变量
2.使用synchronized关键字修饰方法;在任一时刻只能被一个线程执行

synchronized 内部锁仅提供非公平调度策略

你可能感兴趣的:(竞态 synchronized关键字)