美文网首页
Java并发编程学习(1)

Java并发编程学习(1)

作者: 1994_老叶 | 来源:发表于2017-05-25 23:44 被阅读0次

  并发:多个任务交替使用CPU,同一时间只有一个任务。与之对应的还有并行的概念:多个任务同时在跑。

并发编程面临的挑战:上下文切换问题,死锁问题,以及受限于硬件和软件的资源限制问题

上线文切换:线程通过时间片的分配来实现并发,当一个任务切换到另一个任务,要保存上个任务的状态,以便于下次切换回来这个线程,任务从保存到再加载的过程就是一次上下文切换。

在运行次数较少的时间里,并行的速度是不如串行,这是因为线程的创建与上下文切换的开销。所以需要想办法减少上下文切换的次数,一般的方法有:无锁并发编程,CAS算法,使用最少线程,协程

避免死锁:避免一个线程同时获得几个锁;避免一个线程在锁内同时占用多个资源,尽量保障每个锁只占一个资源;尝试使用定时锁,使用lock.

相关文章

网友评论

      本文标题:Java并发编程学习(1)

      本文链接:https://www.haomeiwen.com/subject/tqjugttx.html