java并发volatile和sychnorized的底层机制
摘要:java代码在编译后会变成java字节码,字节码被类加载器加载到jvm中,jvm执行字节码,最终转换成汇编指令在cpu上执行。java中的并发机制,依赖于jvm的实现和cpu的命令。 java中定义了voldatile和sychronized来实现线程之间的通信。 java并发编程中有三大特性 1.
阅读全文
posted @
2021-03-10 17:24
蓝色阿根廷
阅读(310)
推荐(0)
避免死锁的几种方式
摘要:1. 避免一个线程同时获得多个锁 2 尽量保证每个锁只占用一个资源 3. 尝试使用定时锁 4. 对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况
阅读全文
posted @
2021-03-09 17:21
蓝色阿根廷
阅读(867)
推荐(0)
如何减少线程上下文切换
摘要:1. 无锁并发编程。多线程竞争锁,会引起上下文切换。如果是多线程处理数据时,可以根据hash分段处理数据,避免锁竞争 2. CAS算法。java的 atomic原子类 ,compare and swap,比较再交换,也是一直无锁算法。内存值V,旧的预期值A,要修改的新值B。如果内存值和A相同,则修改
阅读全文
posted @
2021-03-09 17:12
蓝色阿根廷
阅读(330)
推荐(0)