《Java并发编程》学习1——并发编程会遇到的挑战

1.上下文切换

创建线程和线程切换存在的开销。

减少上下文切换

①无锁并发编程

②CAS(Compare And Swap)算法,不需加锁

③最少使用线程

④协程:单线程中执行多任务

2.死锁

避免死锁

操作系统中的死锁预防、死锁避免和死锁检测

一锁一资源

定时锁(Java 5提供了更灵活的锁工具,可以显式地索取和释放锁。在索取锁的时候可以设定一个超时时间,如果超过这个时间还没索取到锁,则不会继续堵塞而是放弃此次任务。)

数据库锁(只能在一个数据库连接里加锁和解锁)

3.资源限制

资源限制的情况下,并发变成串行且比串行还要花费更多的开销。

解决资源限制的问题

①硬件资源,考虑使用集群并行执行程序,让程序在多机上运行

②软件资源,使用资源池对资源复用

③根据资源调整并发度

 

学习心得:并发并不是想并发就并发,并发编程时需要注意到很多问题,只有注意到这些问题,对如何正确并发编程会有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值