自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

华丽的痘痘

努力成为一个有价值的程序员

  • 博客(5)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java线程之立刻处理刚完成的任务

ExecutorService的invokeAll()方法可以一次启动多个线程,并将这些线程的执行结果放入一个List。这是一个很方便的方法,但有不足之处,那就是必须等待所有线程全部结束之后,才会返回List,之后才能处理线程的结果。若有些线程执行很快,比如几秒就结束了,另一些线程执行很慢,要几小时,那么短时间线程的执行结果仍然无法立刻获取,必须等几小时之后,所有线程都结束了,他们的执行结果才可用

2013-04-28 13:58:55 3825

原创 Java线程之ExecutorService.invokeAny()

有一类多线程编程模式是这样的:启动多个线程,相互独立的(无同步)去计算一个结果,当某一个线程得到结果之后,立刻终止所有线程,因为只需要一个结果就够了。 实际应用场景:作为男生,电脑上必须有苍老师的爱情动作片。这种片子必须藏得非常隐蔽,隐蔽到什么程度呢?自己都忘了把它藏哪里了,这可咋办啊?编写多线程程序,针对每一个硬盘分区,启动一个线程,搜索该硬盘分区上的所有文件,找名字中含有“苍老师”的文件。由

2013-04-28 10:49:17 9410 8

原创 Java线程之Exchanger

Exchanger可以在两个线程之间交换数据,只能是2个线程,他不支持更多的线程之间互换数据。 当线程A调用Exchange对象的exchange()方法后,他会陷入阻塞状态,直到线程B也调用了exchange()方法,然后以线程安全的方式交换数据,之后线程A和B继续运行 public class ThreadLocalTest { public static void main(Stri

2013-04-26 15:22:50 18962 2

原创 Java线程之ThreadLocal

ThreadLocal的功能是实现一个线程独立的全局变量。 使用全局变量的好处是,程序的任何地方都可以使用它,而无需进行参数传递。 在单线程环境下,将类的属性和方法定义为static,即可实现全局变量。 但是在多线程环境下,普通的全局变量是线程间共享的,一个线程修改了全局变量的值,另一个线程可以看到这个修改。 使用ThreadLocal实现全局变量,即保留了随处可用这一优点,又能做到线程间

2013-04-26 14:43:52 5060

原创 Java线程之Phaser

Phaser是一个灵活的线程同步工具,他包含了CyclicBarrier和CountDownLatch的相关功能        首先,来看一下如何用Phaser替代CountDownLatch。对于CountDownLatch而言,有2个重要的方法,一个是await()方法,可以使线程进入等待状态,在Phaser中,与之对应的方法是awaitAdvance(int n)。CountDownL

2013-04-23 11:27:36 13060

High Performance MySQL 3rd Edition

《High Performance MySQL 3rd Edition》高性能MySql,第3版,2012年出版,0分资源,随意下载,很高兴能与大家分享这种好书

2012-11-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除