概述DelayQueue也是一种队列,它内部的元素有“延迟”,也就是当从队列中获取元素时,如果它的延迟时间未到,则无法取出。DelayQueue的类签名和继承结构如下:publicclassDelayQueue<EextendsDelayed>extendsAbstractQueue<E>implementsBlockingQueue<E>{}下面分析其代码实现
分类:
其他好文 时间:
2020-08-31 13:20:35
阅读次数:
41
1.概述CopyOnWriteArrayList,从名字可以看出它跟ArrayList有点关系,可以理解为线程安全的ArrayList。它的类签名和继承结构如下:publicclassCopyOnWriteArrayList<E>implementsList<E>,RandomAccess,Cloneable,java.io.Serializable{}它主要实现了List
分类:
其他好文 时间:
2020-08-31 13:09:05
阅读次数:
39
概述前面分析过ReentrantLock「JDK源码分析-ReentrantLock」,它是一种互斥的可重入锁,可用于处理并发场景下的线程安全问题。而很多时候会出现“读多写少”的情况,若用ReentrantLock会降低并发量,此时就比较适合ReentrantReadWriteLock出场了。ReentrantReadWriteLock是读写锁,它维护了一对锁:一个读锁,一个写锁。读锁之间是共享的
分类:
其他好文 时间:
2020-08-31 13:08:51
阅读次数:
36
Python数据库连接池DBUtils详解 what's the DBUtils DBUtils 是一套用于管理数据库连接池的Python包,为高频度高并发的数据库访问提供更好的性能,可以自动管理连接对象的创建和释放。并允许对非线程安全的数据库接口进行线程安全包装。 DBUtils提供两种外部接口: ...
分类:
数据库 时间:
2020-08-24 16:39:28
阅读次数:
59
4.单例模式(面试)1.介绍单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。2.示例1.懒汉式,线程不安全这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。
分类:
其他好文 时间:
2020-08-20 18:29:20
阅读次数:
55
经常会看到说HashMap是线程不安全的,ConcurrentHashMap是线程安全的等等说法,不禁有个疑问,HashMap 为什么是线程不安全的呢? 下面为jdk1.8源码分析 final V putVal(int hash, K key, V value, boolean onlyIfAbse ...
分类:
编程语言 时间:
2020-08-20 18:18:26
阅读次数:
102
这节讲一下线程安全的例子,以及如何解决线程安全问题。 上节提到了线程安全的问题,说了一个例子,1000个人抢100张票,这节就从此案例着手,下面先看一下代码实现: private static int tickets = 100; static void Main(string[] args) { ...
分类:
编程语言 时间:
2020-08-08 17:32:24
阅读次数:
80
一、线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。 程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。 线程安全问题都是由全局变量及静态变量引起的。 若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量 ...
分类:
编程语言 时间:
2020-08-05 10:31:44
阅读次数:
62
双重检查[推荐用] public class Singleton { private static volatile Singleton singleton; private Singleton() {} public static Singleton getInstance() { if (sin ...
分类:
其他好文 时间:
2020-08-04 18:14:21
阅读次数:
65
重做永远比改造简单最近在做一个项目,将一个其他公司的实现系统(下文称作旧系统),完整的整合到自己公司的系统(下文称作新系统)中,这其中需要将对方实现的功能完整在自己系统也实现一遍。旧系统还有一批存量商户,为了不影响存量商户的体验,新系统提供的对外接口,还必须得跟以前一致。最后系统完整切换之后,功能只运行在新系统中,这就要求旧系统的数据还需要完整的迁移到新系统中。当然这些在做这个项目之前就有预期,想
分类:
其他好文 时间:
2020-08-04 14:06:39
阅读次数:
118