并发编程注意事项

一、上下文切换问题

大量 线 锁时 ,会引起CPU频繁的上下文切 换。、

解决方法:

1.使用无锁算法,例如CAS

2.将处理的数据细粒度化,减少锁竞争,例如Mysql的页锁,行锁

3.避免创建大量线程,创建线程后及时销毁,例如线程池的应用

4.使用协程,例如使用协程库Quasar

处理方案:通过 jstack jconsle 等命令或工具查看是否有大量线程wait并处理

二、死锁问题

产生死 ,会造成系 功能不可用

解决方法:

1.避免一个线程同时获取多个

2.避免一个线程在内同占用多个

3.尝试使用定时锁

4.将释放锁操作加入finally块中

5.对于数据库锁,加和解在一个数据库连接里

处理方案:dump线程查看是否有死锁情况出现

你可能感兴趣的:(并发编程,java,开发语言)