随笔分类 - concurrency
摘要:When a new task is submitted in method execute(Runnable), and fewer than corePoolSize threads are running, a new thread is created to handle the reque
阅读全文
摘要:悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op
阅读全文
摘要:Thread -- Request What is recommended way for spawning threads from a servlet in Tomcat [duplicate] Using Java SE concurrency utilities such as the ja
阅读全文
摘要:参见:Call to method of static java.text.DateFormat not advisable? Noncompliant Code Example: Compliant Solution: 后面这种solution也不能保证安全性,要保证完全安全性只能是使用局部变量进
阅读全文
摘要:ABA问题是CAS中的问题,假设CAS中V表示需要读写的内存位置,A是进行比较的值,B将要写入的新值。ABA问题的原因在于有时需要知道V处的值是否发生了变化,如果V处的值由A变成B,再由B变成了A,那么一般会忽略这种变化,因为自上次检测以来,V处的值还是A。AtomicStampedReferenc
阅读全文
摘要:当需要一些高级功能时才应使用ReentrantLock,这些功能包括:可定时的、可轮询的与可中断的锁获取操作,公平队列,以及非块结构的锁。另外ReentrantLock可以有多个Condition对象。 其他情况应该优先使用synchronized synchronized的优点: 1. 不用手动释
阅读全文
摘要:通过execute提交的任务,能将该任务抛出的异常交给未捕获异常处理器处理,而通过submit提交的任务,无论是抛出的未检查异常还是已检查异常,都将被认为是任务返回状态的一部分。如果一个由submit提交的任务由于抛出了异常而结束,那么这个异常将被Future.get封装在ExecutionExce
阅读全文
摘要:Runnable 一个执行任务,没有返回值,也不能抛出受检查异常 Callable 一个执行任务有返回值,也能抛出受检查异常 Future 表示执行任务的生命周期,任务的生命周期为:创建,提交,开始,完成。实现类:FutureTask Executor 只有一个 void execute(Runna
阅读全文
摘要:Java6增加了两种容器类型,Deque和BlockingDeque,它们分别对Queue和BlockingQueue进行了扩展。 Deque是一个双端队列,实现了在队列头和队列尾的高效插入和移除。具体实现包括ArrayDeque和LinkedBlockingDeque. 正如阻塞队列使用与生产者-
阅读全文
摘要:1. 安全性问题 2. 活跃性问题 3. 性能问题 安全性的含义是“永远不发生糟糕的事情”,而活跃性则关注于另一个目标,即“某件正确的事总会发生”。当某个操作无法继续执行下去的时候就会发生活跃性问题。例:如果线程A在等待线程B释放资源,而线程B永远不释放资源,那A就会永远等待下去。 活跃性问题包括:
阅读全文

浙公网安备 33010602011771号