Java/Threading
conkeyn
a
展开
-
java.util.concurrent.CyclicBarrier
在实际应用中,有时候需要多个线程同时工作以完成同一件事情,而且在完成过程中,往往会等待其他线程都完成某一阶段后再执行,等所有线程都到达某一个阶段后再统一执行。 比如有几个旅行团需要途经深圳、广州、韶关、长沙最后到达武汉。旅行团中有自驾游的,有徒步的,有乘坐旅游大巴的;这些旅行团同时出发,并且每到一个目的地,都要等待其他旅行团到达此地后再同时出发,直到都到达终点站武汉。 这时候CyclicBar...原创 2009-12-11 11:46:15 · 96 阅读 · 0 评论 -
java.util.concurrent.Semaphore
http://zhidao.baidu.com/question/48694020 信号量 一、问题描述 生产者-消费者问题是一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。 他要求设计在同一个进程地址空间内执行的两个线程。 生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。 消费者线程从缓冲区中获得物品,然...原创 2009-12-11 22:25:09 · 115 阅读 · 0 评论 -
java.util.concurrent.Exchanger
d import java.util.concurrent.Exchanger; /** * 案例:服务员向原有空杯中不断倒水,消费者不断从原有装满水的杯中喝水。 * 当服务员倒满水和消费者喝完水时,两个杯子进行交换。一直这样周而复始。 * * @author Administrator * */ public class TestExchanger { ...原创 2009-12-13 10:52:41 · 119 阅读 · 0 评论 -
java.util.concurrent.CountDownLatch
import java.util.concurrent.CountDownLatch; /** * 案例:一台机器启动后,有5个人的工人同时在这台机器上进行操作,5个工人有的效率高有的效率低, * 当这5个工人操作完毕时,关闭机器。 * * @author Administrator * */ public class TestCountDownLatch...原创 2009-12-13 10:53:59 · 78 阅读 · 0 评论 -
Java threads may not use all your CPUs
Enterprise-level applications often need more CPU power than a single-CPU machine can provide, but getting applications to effectively use multiple CPUs can be tricky. If you...原创 2010-06-10 11:51:29 · 108 阅读 · 0 评论 -
JavaGGDataSource
d 转自:来源忘记了。 /** * JavaGGDataSource.java 2011-3-4 上午09:21:05 */ package test.datasource; import java.io.PrintWriter; import java.lang.reflect.InvocationHandler; import java.lang.reflect...原创 2011-03-04 15:05:01 · 69 阅读 · 0 评论 -
线程同步通信
看传智播客张孝祥讲的一个例子。 子线程循环10次,接着主线程循环100次,再次回到子线程循环10次,接着再回到主线程循环100次,如此循环50次,请写出程序。 package cn.itcast.heima2; public class TraditionalThreadCommunication { /** * @param args ...原创 2011-10-22 19:48:25 · 83 阅读 · 0 评论 -
多个线程访问共享对象和数据的方式
(1)如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做。 (2)如果每个线程执行的代码不同,这时候需要用不同的Runnable对象,有如下两种方式来实现这些Runnable对象之间的数据共享: 1、将共享数据封装在另外一个对象中,然后将这个对象逐一传递给各个Runnable对象。每个线程对共享数据的操作...原创 2011-10-26 08:15:14 · 88 阅读 · 0 评论 -
Java线程:线程状态的转换
转自:http://lavasoft.blog.51cto.com/62575/99153 一、线程状态 线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个图来描述如下: 1、新状态:线程对象已经创建,还没有在其上调用start()方法。 2、可运行状态:当线程有资格运行,但调度程序还没有把它选定为运行线程...原创 2012-01-30 16:09:54 · 85 阅读 · 0 评论