本文主要是介绍Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。
java.util.concurrent包分成了三个部分,分别是java.util.concurrent、java.util.concurrent.atomic和java.util.concurrent.lock。内容涵盖了并发集合类、线程池机制、同步互斥机制、线程安全的变量更新工具类、锁等等常用工具。
java.util.concurrent包中提供了几个并发结合类,例如ConcurrentHashMap、ConcurrentLinkedQueue和CopyOnWriteArrayList等等
对变量的读写操作都是原子操作(除了long或者double的变量),但像数值类型的++ --操作不是原子操作,像i++中包含了获得i的原始值、加1、写回i、返回原始值,在进行类似i++这样的操作时如果不进行同步问题就大了。好在java.util.concurrent.atomic为我们提供了很多工具类,可以以原子方式更新变量。
以AtomicInteger为例,提供了代替++ --的getAndIncrement()、incrementAndGet()、getAndDecrement()和decrementAndGet()方法,还有加减给定值的方法、当前值等于预期值时更新的compareAndSet()方法。
这篇关于Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!