HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。 HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。 HashMap ...
分类:
其他好文 时间:
2018-03-28 20:21:18
阅读次数:
174
synchronized的缺陷 我们知道,可以利用synchronized关键字来实现共享资源的互斥访问。Java 5在java.util.concurrent.locks包下提供了另一种来实现线程的同步访问,那就是Lock。既然有了synchronized来实现线程同步,Java为什么还需要提供L ...
分类:
其他好文 时间:
2018-03-22 12:31:26
阅读次数:
186
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3503480.html LinkedBlockingDeque介绍 LinkedBlockingDeque是双向链表实现的双向并发阻塞队列。该阻塞队列同时支持FIFO和FILO两种操作方式,即可以从队列的头 ...
分类:
数据库 时间:
2018-03-12 21:06:52
阅读次数:
276
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498995.html ConcurrentLinkedQueue介绍 ConcurrentLinkedQueue是线程安全的队列,它适用于“高并发”的场景。它是一个基于链接节点的无界线程安全队列,按照 F ...
分类:
编程语言 时间:
2018-03-12 20:57:53
阅读次数:
204
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498652.html ArrayBlockingQueue介绍 ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列。线程安全是指,ArrayBlockingQueue内部通过“互斥锁 ...
分类:
编程语言 时间:
2018-03-12 20:53:54
阅读次数:
206
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3503458.html LinkedBlockingQueue介绍 LinkedBlockingQueue是一个单向链表实现的阻塞队列。该队列按 FIFO(先进先出)排序元素,新元素插入到队列的尾部,并且队 ...
分类:
数据库 时间:
2018-03-12 20:53:07
阅读次数:
224
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3498634.html ConcurrentSkipListSet介绍 ConcurrentSkipListSet是线程安全的有序的集合,适用于高并发的场景。ConcurrentSkipListSet和Tr ...
分类:
编程语言 时间:
2018-03-12 18:34:54
阅读次数:
171
多线程并发、包括线程池,是操作系统控制的并发。如果是单线程,可以通过协程实现单线程下的并发。 协程 又称微线程,是一种用户态的轻量级线程,由用户程序自己控制调度。 python的线程属于内核级别的,由操作系统控制调度(如单线程遇到io或执行时间过长就会被迫交出cpu执行权限,切换其他线程运行) 而单 ...
分类:
编程语言 时间:
2018-03-12 15:16:21
阅读次数:
213
在多线程的场景下,有些并发流程需要人为来控制,在JDK的并发包里提供了几个并发工具类:CountDownLatch、CyclicBarrier、Semaphore。 一、CountDownLatch 这个CountDownLatch的构造函数接受一个int类型的参数作为计数器,N表示阻塞的线程必须等 ...
分类:
其他好文 时间:
2018-03-06 17:08:52
阅读次数:
186