码迷,mamicode.com
首页 >  
搜索关键字:多线程并发    ( 789个结果
Volatile总结
在java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。synchronized同步块大家都比较熟悉,...
分类:其他好文   时间:2014-09-18 23:28:14    阅读次数:333
Java 并发编程之测试(二)
资源管理的测试 先摆上昨天测试用的栗子 import java.util.concurrent.Semaphore; public class BoundedBuffer { private final Semaphore availableItems, availableSpaces; private final E[] Items; private int putPosition...
分类:编程语言   时间:2014-09-15 17:46:19    阅读次数:261
Java 并发编程和可伸缩性(三)
避免热点域 比如一个hashmap的size。优化的方法就是加一个计数器。但是对于ConcurrentHashMap来说。当并发的对其进行操作时,每次put和remove都需要改变这个计数器。所以在这个类里这个计数器就被叫做热点域,是可伸缩性的瓶颈。所以这里采取避免热点域的方法是对于应用锁分段的散列桶,ConcurrentHashMap中的size将对每个分段进行枚举并将每个分段的元素数量相加。...
分类:编程语言   时间:2014-09-13 09:24:34    阅读次数:231
Java 并发编程和可伸缩性(二)
阻塞 非竞争的同步可以完全在JVM中处理,竞争的同步则可能需要操作系统的介入,从而增加开销。当在锁上发生竞争时,竞争失败的线程肯定会阻塞。JVM在实现阻塞行为时,可以采用自旋等待,就是通过循环不断的尝试获取锁。直到成功。或者通过操作系统挂起被阻塞的线程。这两种方式的效率高低取决于上下文切换的开销以及在成功获取锁之前需要等待的时间。如果等待时间较短,采用自旋等待的方式,如果时间较长,则采用操作系统...
分类:编程语言   时间:2014-09-10 22:30:41    阅读次数:230
Java 并发编程之性能和可伸缩性
对性能的思考 对于一个给定的操作,通常会...
分类:编程语言   时间:2014-09-09 21:39:09    阅读次数:309
Java 并发编程之死锁
动态的锁顺序死锁 在协作对象之间发生的死锁 死锁的避免与诊断 支持定时的锁 通过线程转储信息来分析死锁 其它活跃性危险 饥饿 糟糕的响应性 活锁...
分类:编程语言   时间:2014-09-09 13:13:08    阅读次数:225
Java 并发编程之线程池的使用 (三)
线程工厂 在调用构造函数后再定制ThreadPoolExecutor 扩展ThreadPoolExecutor 递归算法的并行化...
分类:编程语言   时间:2014-09-07 22:30:15    阅读次数:328
Java 并发编程之线程池的使用 (二)
设置线程池的大小 配置ThreadPoolExecutor 管理队列任务 饱和策略...
分类:编程语言   时间:2014-09-06 22:33:34    阅读次数:353
Java 并发编程之线程池的使用
Java 并发编程之线程池的使用...
分类:编程语言   时间:2014-09-05 23:48:12    阅读次数:211
悲观的并发策略——Synchronized互斥锁
volatile既然不足以保证数据同步,那么就必须要引入锁来确保。互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁释放后才能重新进行竞争。对于java开发人员,我们最熟悉的肯定就是用synchronized关键词完成锁功能,在涉及到多线程并发时,对于一些变量,你应该会毫不犹豫地加上synchronized去保证变...
分类:其他好文   时间:2014-09-05 19:58:11    阅读次数:204
789条   上一页 1 ... 72 73 74 75 76 ... 79 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!