Java并发中正确使用volatile原文链接 http://ifeve.com/how-to-use-volatile/作者:一粟 整理和翻译自Twitter实时搜索的PPT前几天并发编程群里有同学对volatile的用法提出了疑问,刚好我记得Twitter有关实时搜索的这个PPT对这个问题解释的...
分类:
编程语言 时间:
2014-11-02 00:29:09
阅读次数:
360
多线程编程Part 1介绍了NSThread以及NSRunLoop,这篇Blog介绍另一种并发编程技术:NSOPeration。NSOperation & NSOperationQueue从头文件NSOperation.h来看接口是非常的简洁,NSOperation本身是一个抽象类,定义了一个要执行...
分类:
移动开发 时间:
2014-10-31 13:43:42
阅读次数:
287
使用状态变量来终结任务
有时我们可以使用一个状态变量(如布尔值)来终结任务的执行,这种方式非常平和,且提供给你机会在任务终止前做一些操作。如:
public class StateStopTask implements Runnable{
private static volatile boolean isCancled = false;
public voi...
分类:
其他好文 时间:
2014-10-30 22:42:19
阅读次数:
281
解决共享资源竞争
一个不正确的访问资源示例
考虑下面的例子,其中一个任务产生偶数,而其他任务消费这些数字。这里,消费者任务的唯一工作就是检查偶数的有效性。
我们先定义一个偶数生成器的抽象父类。
public abstract class IntGenerator {
private volatile boolean canceled = false;...
分类:
其他好文 时间:
2014-10-29 21:48:09
阅读次数:
252
看过了很多介绍指令重排序的文章,可惜由于自己硬件和计算机理论知识缺乏,很难理解深层次的奥秘和实现原理。不过也有很多帖子,讲的浅显易懂,使用的例子很形象。大牛就是能用简单的解释和通俗的比喻,给我们讲明白很高深的东西。这里做个摘抄和总结,和大家分享下,希望大家能够对指令重排序有个形象的认识,不至于在并发编程中犯一些简单的错误。如果理解有错误,希望看到的大神指正。 从源码变成可以被机器(或虚拟机)识别的程序,至少要经过编译期和运行期。重排序分为两类:编译期重排序和运行期重排序,分别对应编译时和运行时环境。由于重排...
分类:
编程语言 时间:
2014-10-29 00:18:04
阅读次数:
712
Java并发编程实践 目录并发编程 01—— ConcurrentHashMap并发编程 02—— 阻塞队列和生产者-消费者模式并发编程 03—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程 04—— Callable和Future并发编程 05—— Complet...
分类:
其他好文 时间:
2014-10-27 21:04:17
阅读次数:
231
java线程的创建
定义任务
在java中使用任务这个名词来表示一个线程控制流的代码段,用Runnable接口来标记一个任务,该接口的run方法为线程执行的代码段。
public class LiftOff implements Runnable {
protected int countDown = 10;
private static int ta...
分类:
编程语言 时间:
2014-10-26 17:04:09
阅读次数:
213
java书单
thinking in java
java并发编程实战
Effective Java
深入理解JVM虚拟机
java性能优化权威指南
JSR133
Google Guava官方教程...
分类:
其他好文 时间:
2014-10-26 16:59:47
阅读次数:
136
Java并发编程实践 目录并发编程—— ConcurrentHashMap并发编程—— 阻塞队列和生产者-消费者模式并发编程—— 闭锁CountDownLatch 与 栅栏CyclicBarrier并发编程—— Callable和Future并发编程—— CompletionService : Ex...
分类:
编程语言 时间:
2014-10-24 18:43:37
阅读次数:
217
新开了一个专栏,
聊聊高并发, 这个专栏会涉及到并发编程的原理,技术,算法,设计,底层实现,经验积累等方方面面,有空会经常更新。
推荐一下,多多交流...
分类:
其他好文 时间:
2014-10-24 14:39:46
阅读次数:
216