
concurrent
haozi_ncepu
这个作者很懒,什么都没留下…
展开
-
concurrent
一次聊天,谈到了死锁的解决、可重入锁等等,突然发现这些离自己很远,只有一些读书时的概念涌入脑海,但各自的应用场景怎么都无法想出。痛定思痛,决定看看concurrent包里涉及并发的类及各自的应用场景。第一类:原子操作类的atomic包,里面包含了1)布尔类型的AtomicBoolean2)整型AtomicInteger、AtomicIntegerArray、AtomicIn原创 2017-04-18 09:41:14 · 2930 阅读 · 0 评论 -
Java 7中的TransferQueue
Java7中加入了JSR 166y规范对集合类和并发类库的改进。其中的一项是增加了接口TransferQueue和其实现类LinkedTransferQueue。TransferQueue继承了BlockingQueue(BlockingQueue又继承了Queue)并扩展了一些新方法。BlockingQueue(和Queue)是Java 5中加入的接口,它是指这样的一个队列:当生产者原创 2017-04-17 15:47:19 · 371 阅读 · 0 评论 -
线程池的使用(ThreadPoolExecutor详解)
为什么要使用线程池?线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度——这是一个耗费时间和系统资源的事情。 另一方面,大多数实际场景中是这样的:处理某一次请求的时间是非常短暂的,但是请求数量是巨大的。这种技术背景下,如果我们为每一个请求都单独创建一个线程,那么物理机的所有资源基本上都被操原创 2017-04-17 15:30:42 · 4187 阅读 · 3 评论 -
ThreadPoolExecutor
前记: jdk官方文档(javadoc)是学习的最好,最权威的参考。文章分上中下。上篇中主要介绍ThreadPoolExecutor接受任务相关的两方面入参的意义和区别,池大小参数corePoolSize和maximumPoolSize,BlockingQueue选型(SynchronousQueue,LinkedBlockingQueue,ArrayBlockingQueue);原创 2017-04-17 15:02:15 · 446 阅读 · 0 评论 -
ThreadPoolExecutor讲解
private static ExecutorService exec = new ThreadPoolExecutor(8, 8, 0L,TimeUnit.MILLISECONDS, new LinkedBlockingQueue(100000),new ThreadPoolExecutor.CallerRunsPolicy());一、简介 线程池类为 Java.util原创 2017-04-17 14:52:25 · 876 阅读 · 0 评论 -
ThreadLocalRandom
private static final ThreadLocal localRandom = new ThreadLocal() { protected ThreadLocalRandom initialValue() { return new ThreadLocalRandom(); } }; T原创 2017-04-17 13:43:52 · 978 阅读 · 0 评论 -
Random,ThreadLocalRandom,SecureRandom
文中的Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即:java.security.SecureRandomQ:Random是不是线程安全的?A:Random是线程安全的,但是多线程下可能性能比较低。参考:http://原创 2017-04-17 13:33:09 · 802 阅读 · 0 评论