java在并发编程时的特性

可见性:

当多个线程操作一块内存时,一个线程将内存中的数据放入自己的缓存中进行修改,对于其他线程来说此修改是不可见的。
解决办法:在变量定义时添加volatile修饰;使用synchronized加锁。

原子性:

每个线程在运行时可能会被CPU中断。
解决办法:使用原子类,Atomicxxx,例:AtomicInteger x= new AtomicInteger(0);使用synchronized加锁。

有序性:

多个线程在运行时,代码的运行顺序可能会改变。
解决办法:在变量定义时添加volatile修饰;使用synchronized加锁。

posted @ 2022-03-07 18:04  叕叕666  阅读(22)  评论(0)    收藏  举报