本文主要是介绍概念理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Java中的几种概念的理解:
可见性:当一个线程修改了共享变量时,另一个线程可以读取到这个修改后的值。
原子性:原子性是指一个操作是不可中断的,要么全部执行成功要么全部执行失败,有着“同生共死”的感觉。例如银行转账的操作
有序性:即程序执行的顺序按照代码的先后顺序执行,没有进行指令重排
与锁有关的几个概念
1、可重入性:一个线程再持有一个锁的时候还能否再次(多次)申请该锁,可以的话就称该锁是可重入的,反之则为非可重入的。
2、锁的争用与调度:锁可以看做多线程程序访问共享数据时所持有的一种排他性资源。java平台锁的调度策略包括公平策略和非公平策略,相应的锁就被称为公平锁和非公平锁。内部锁属于非公平锁,而显示锁则既支持公平锁又支持非公平锁。
3、锁的粒度:一个锁实例可以保护一个或者多个共享数据。一个锁所保护的共享数据的数量大小就称为该锁的粒度。共享数据大,就称为该锁的粒度粗,否则称该锁的粒度细。
这篇关于概念理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!