扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇内容介绍了“Java的线程并发库主要有哪些包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
目前成都创新互联公司已为1000+的企业提供了网站建设、域名、虚拟空间、网站托管、服务器托管、企业网站设计、容县网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
(1)java.util.concurrent包
java.util.concurrent包含许多线程安全、测试良好、高性能的并发构建块。不客气地说, 创建java.util.concurrent的目的就是要实现Collection框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以提高并发类的线程安全、可伸缩性、性能、可读性和可靠性,后面、我们会做介绍。如果一些类名看起来相似,可能是因为 java.util.concurrent中的许多概念源自 Doug Lea的util.concurrent库 。
(2)java.util.concurrent.atomic包
查看 atomic包文档页下面的介绍,它可以对多线程的基本数据、数组中的基本数据和对象中的基本数据进行多线程的操作(AtomicInteger、AtomicIntegerArray、AtomicIntegerFieldUpDater…)
通过如下两个方法快速理解 atomic包的意义:
AtomicInteger类的 boolean compareAndSet(expectedValue, updateValue);
AtomicIntegerArray类的 int addAndGet(int i, int delta);
顺带解释 volatile类型的作用,需要查看 java语言规范。volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值。(具有可见性)volatile没有原子性。
(3)java.util.concurrent.lock包
为锁和等待条件提供一个框架的接口和类,它不同于内置同步和监视器。该框架允许更灵活地使用锁和条件。本包下有三大接口,下面简单介绍下:
Lock接口:支持那些语义不同(重入、公平等)的锁规则,可以在非阻塞式结构的上下文(包括 hand- over-hand和锁重排算法)中使用这些规则。主要的实现是 ReentrantLock。
ReadWriteLock接口:以类似方式定义了一些读取者可以共享而写入者独占的锁。此包只提供了一个实现,即 ReentrantReadWriteLock,因为它适用于大部分的标准用法上下文。但程序员可以创建自己的、适用于非标准要求的实现。
Condition接口:描述了可能会与锁有关联的条件变量。这些变量在用法上与使用 Object.wait访问的隐式监视器类似,但提供了更强大的功能。需要特别指出的是,单个 Lock可能与多个 Condition对象关联。为了避免兼容性问题,Condition方法的名称与对应的 Object版本中的不同。
“Java的线程并发库主要有哪些包”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流