线程
幸福过饱和
这个作者很懒,什么都没留下…
展开
-
java线程基本概念
线程中sleep和wait有什么区别2012-03-16 14:24 229人阅读 评论(0) 收藏 举报1、这两个方法来自不同的类分别是Thread和Object 2、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep...原创 2012-11-14 21:32:57 · 83 阅读 · 0 评论 -
java线程池
ExecutorService是线程池的一个服务,可以随时关闭线程池,是继承Executor的。Executors是个工厂类,专门创建各种线程池。Android常用的线程池有一下几种,在Executors里面对应的方法:1. newFixedThreadPool创建一个可重用固定线程数的线程池,以共享的无界队列方式来运行这些线程。在任意点,在大多数 nThreads 线程会处于...原创 2012-11-14 21:33:05 · 68 阅读 · 0 评论 -
java Future 接口介绍
在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现。 Future接口是Java标准API的一部分,在java.util.concurrent包中。Future接口是Java线程Future模式的实现,可以来进行异步计算。 Future模式可以这样来描述:我有一个任务,提交给了Future,Future替我完...原创 2012-11-15 20:13:06 · 84 阅读 · 0 评论 -
CAS
在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。volatile是不...原创 2012-11-15 20:15:49 · 73 阅读 · 0 评论 -
BlockingQueue
public interface BlockingQueue<E>extends Queue<E>支持两个附加操作的 Queue,这两个操作是:检索元素时等待队列变为非空,以及存储元素时等待空间变得可用。BlockingQueue 不接受 null 元素。试图 add、put 或 offer 一个 null 元素时,某些实现会抛出NullPointerE...原创 2012-11-16 10:01:43 · 69 阅读 · 0 评论 -
AtomicInteger在实际项目中的应用
今天写代码,尝试使用了AtomicInteger这个类,感觉使用起来很爽,特别适用于高并发访问,下面贴一个简单的例子:Java代码 CashierContext类部分代码: private Map<String, AtomicInteger> counter = new HashMap<String, Ato...原创 2012-11-16 10:01:53 · 140 阅读 · 0 评论