问题来历 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成…
多线程下HashMap的死循环问题
多线程下[HashMap]的问题: 1、多线程put操作后,get操作导致死循环。2、多线程put非NULL元素后,get操作得到NULL值。3、多线程put操作,导致元素丢失。 本次主要关注[HashMa…
Java多线程:Java内存模型
参考资料: 程晓明:Java内存模型 《Java并发编程的艺术》 《深入理解Java虚拟机:JVM高级特性与最佳实践》
Java多线程:CountDownLatch、CyclicBarrier 和 Semaphore,Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
场景描述: 多线程设计过程中,经常会遇到需要等待其它线程结束以后再做其他事情的情况。 有几种方案: 1.在主线程中设置一自定义全局计数标志,在工作线程完成时,计数减1。主线程侦测该标志是否为0,一旦…
Java多线程:ThreadLocal,ThreadLocal
一、ThreadLocal基础知识 ThreadLocal是线程的一个本地化对象,或者说是局部变量。当工作于多线程中的对象使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程分…
Java集合---HashSet的源码分析
一、 HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺…
Java多线程:死锁
周末看到一个用jstack查看死锁的例子。昨天晚上总结了一下jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令。供大家参考 1.Jstack 1.1 …
Java多线程:队列与阻塞队列
1. 什么是阻塞队列 阻塞队列(BlockingQueue)是 Java 5 并发新特性中的内容,阻塞队列的接口是 java.util.concurrent.BlockingQueue,它提供了两个附加操作:当队列中为空…
插入排序算法---插入排序与希尔排序,希尔排序
本文主要说明插入排序、shell排序两种排序方法。 一、插入排序  …
交换排序算法---冒泡排序与快速排序
本文介绍两种交换排序方法:冒泡排序、快速排序 冒泡排序(BubbleSort) &nbs…