
Java并发
iteye_8895
这个作者很懒,什么都没留下…
展开
-
进程和线程(Concurrency Tutorial 1)
[size=small]此刻,在南京参加一个封闭开发,闲来无事也是因为工作需要看Java tutorial.突然想把它翻译下来,仔细想想找出来几个理由:1 最近比较浮躁,什么技术都玩,总是不能深入,希望通过翻译技术文章让自己沉下来。2 还不算难翻译,顺便提高下英语水准和码字速度。本译文纯属笔者练习之用(大家就容许这位“笔者”得瑟一回呗),希望不会误导大家,文中凡是笔者以为重要的或可能...原创 2012-04-03 11:26:17 · 113 阅读 · 0 评论 -
线程对象(Concurrency Tutorial 2)
[size=medium][b][color=blue]线程对象[/color][/b][/size]每个线程都关联一个Thread类实例。创建一个并发应用有两种基本策略:[list][*]直接控制线程创建和管理,每当你的应用需要一个异步运行的任务时简单地实例化一个Tread类,并启动它。 [*]创建线程,然后托管你的线程管理,把应用程序的任务执行及管理交给executor。...原创 2012-04-04 11:48:35 · 110 阅读 · 0 评论 -
同步(Concurrency Tutorial 3)
[b][size=medium][color=blue]同步(Synchronization)[/color][/size][/b]线程之间的通信主要是通过共享变量和变量指向的对象。这种形式的通信非常高效,但是产生了两种可能的错误:线程干扰(thread interference)和读脏数据(memory consistency errors)。我们需要使用同步来避免这些错误。[lis...原创 2012-04-09 20:27:09 · 176 阅读 · 0 评论 -
活性(livness)(Concurrency Tutorial 4)
[b][size=medium][color=blue]活性(Liveness)[/color][/size][/b]并发程序能及时(in a timely manner)执行的能力叫作它的活性。本节描述了最常见的一种活性问题:死锁(deadlock)。然后简单描述了另外两个活性问题, 饥饿(starvation)和活锁(livelock)。[b][color=blue]死锁[/b...原创 2012-04-19 19:26:53 · 198 阅读 · 0 评论 -
保护块(Guarded Blocks)(Concurrency Tutorial 5)
[color=blue][size=medium]保护块(Guarded Blocks)[/size][/color]线程间经常要协调并行操作,而最常见的协调方法就是保护块。保护块即:一块在执行前必须检查是否满足某一条件的代码。要做到这一点,要走这几步。举个例子guardedJoy 是一个共享变量joy被置为true时才能执行的方法。理论上讲,guardedJoy可以写成一直循环判...2012-05-21 15:43:02 · 262 阅读 · 0 评论 -
为线程执行设置timeout
[code="java"]package com.test.threads;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concur...2012-12-25 17:32:09 · 812 阅读 · 0 评论 -
高级并发对象(Councurrency Tutorial 7)
[size=medium][color=blue]高级并发对象[/color][/size]到目前为止,上几个章节中,我们重点讲了Java框架最原始的低级API。这些API对于完成基本任务来说已经足够了,但是对于更高级的工作我们需要更高级的API。对于那些需要充分利用现代多处理器和多核系统的大规模高并发应用尤其如此。本节中,我们将看到一些Java5.0新增的高级并发特性。这些特性大...原创 2012-12-25 20:02:00 · 204 阅读 · 0 评论 -
不可变对象(Immutable Objects)(Concurrency tutorial 6)
[color=blue][size=medium]不可变对象(Immutable Objects)[/size][/color]如果一个对象的状态在其创建之后不能被改变,那我们就说它是不可变对象。在多线程编程中,最大程度地使用不可变对象可以实现简单又可靠的代码。不可变对象在并发应用中特别有用。因为它们不会改变状态,它们在遇到线程干扰和不一致访问时也不会出错(译注:因为每个线程在试图...2012-12-25 20:18:27 · 124 阅读 · 0 评论