多线程
文章平均质量分 68
飞龙剑
这个作者很懒,什么都没留下…
展开
-
线程范围内共享数据
import java.util.HashMap;import java.util.Map;import java.util.Random;/** * 线程范围内共享数据(创建两个线程并存储不同的数据,线程独立) * @author tanfei * @date 2012-02-02 */public class ThreadScopeShareData {原创 2012-02-03 09:36:47 · 844 阅读 · 0 评论 -
完成线程CompletionService返回值操作(按完成操作的线程的先后打印)
import java.util.Random;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorComple原创 2012-02-06 08:43:38 · 1599 阅读 · 0 评论 -
java5中的锁操作
import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * java5中的锁操作 * @author 谭飞 * @date 2012-02-03 */public class LockTest { /** * @param args */ pu原创 2012-02-06 08:44:32 · 552 阅读 · 0 评论 -
阻塞队列
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 阻塞队列(jdk1.5例子)完整的可参照ArrayBlockingQueue * @author 谭飞 * */原创 2012-02-07 17:31:33 · 514 阅读 · 0 评论 -
CyclicBarrier同步工具应用
import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * CyclicBarrier原创 2012-02-07 17:32:46 · 618 阅读 · 0 评论 -
Exchanger数据交换工具
import java.util.concurrent.Exchanger;/** * Exchanger数据交换工具 * @author 谭飞 * @date 2012-02-07 */public class ExchangerTest { /** * @param args */ public static void main(String[] args) {原创 2012-02-07 17:33:27 · 365 阅读 · 0 评论 -
信号灯与阻塞队列
import java.util.concurrent.Semaphore;import java.util.concurrent.SynchronousQueue;/** * 信号灯与阻塞队列(现成程序中的ThreadDemo类中的代码在不断地产生数据, * 然后交给PrintOuter.printOut()方法去处理,就好像生产者在不断地产生数据, * 消费者在不断消费数据。请将原创 2012-02-07 17:34:45 · 526 阅读 · 0 评论 -
CountDownLatch计数(百米赛跑模拟,子线程好比运动员,主线程好比裁判员)
import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * CountDownLatch计数(百米赛跑模拟,子线程好比运动员,主线程好比裁判员) * @author 谭飞 * @dat原创 2012-02-07 17:32:13 · 1618 阅读 · 0 评论 -
阻塞队列之实战
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;/** * 阻塞队列之实战(现有程序代码模拟产生16个日志对象,需要16秒才能打印完, * 现添加四个线程用于打印16个日志,用时4秒,如何实现) * @author 谭飞 * @date 2012原创 2012-02-07 17:34:15 · 646 阅读 · 0 评论 -
多线程面试题
import java.util.Iterator;import java.util.concurrent.CopyOnWriteArrayList;/** * 现有程序同时启动了4个线程去调用TestDo.doSome(key, value)方法,由于TestDo.doSome(key, value)方法内的代码是先暂停1秒,然后再输出以秒为单位的当前时间值,所以,会打印出4个相同的时间原创 2012-02-07 17:35:36 · 502 阅读 · 0 评论 -
空中网多线程题
空中网4k/5k月薪挑选大四实习生的线程题 两年前,我们一个大四的学员去应聘空中网的实习生职位,空中网只给他出了三道线程题,拿回家做两天后再去给经理讲解,如果前两题做好了给4k月薪,第三道题也做出来的话就给5k的月薪。这样的实习薪水和招聘要求,不需要有工作经验的限制,纯粹是技术功底的比拼和考核,而不像许多其他公司非要招两年工作经验的人,逼得那些刚毕业和未毕业的大学生不得不去撒谎,不得不去转载 2012-02-07 17:35:57 · 618 阅读 · 0 评论 -
线程中的Callable和Future运用
import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import java.util.concurrent.TimeUnit;/**原创 2012-02-06 08:42:52 · 602 阅读 · 0 评论 -
利用读写锁写一个缓存系统
import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * 利用读写锁写一个缓存系统 * @author 谭飞 * @date 2原创 2012-02-06 08:42:12 · 644 阅读 · 0 评论 -
传统线程操作
/** * 传统线程操作 * @author tanfei * @date 2012-02-02 */public class TraditionalThread { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method原创 2012-02-03 09:37:40 · 353 阅读 · 0 评论 -
传统定时器Timer操作(首次爆炸是2秒,以后每隔3秒爆炸)
import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * 传统定时器Timer操作(首次爆炸是2秒,以后每隔3秒爆炸) * @author 谭飞 * @date 2012-02-02 */public class TraditionalTimer { /**原创 2012-02-03 09:39:54 · 1010 阅读 · 0 评论 -
传统定时器操作(首次爆炸是2秒,以后按照3秒、6秒交替爆炸)
import java.util.Date;import java.util.Timer;import java.util.TimerTask;/** * 传统定时器操作(首次爆炸是2秒,以后按照3秒、6秒交替爆炸) * @author 谭飞 * @date 2012-02-02 */public class TraditionalTimer02 { p原创 2012-02-03 09:40:45 · 866 阅读 · 0 评论 -
多线程共享数据案例
/** * 多线程共享数据(设计四个线程,其中两个线程对J加1,两个线程对J减1) * @author tanfei * @date 2012-02-03 */public class MultiThreadShareData { private static MyShareData shareData = new MyShareData(); public原创 2012-02-03 09:33:14 · 1862 阅读 · 0 评论 -
ThreadLocal线程范围内共享数据
import java.util.Random;/** * ThreadLocal线程范围内共享数据(创建两个线程并存储不同的数据,线程独立) * @author tanfei * @date 2012-02-02 */public class ThreadLocalTest { //private static Map threadData = new Has原创 2012-02-03 09:34:57 · 965 阅读 · 0 评论 -
传统线程通信(子线程运行10次,主线程运行100次,如此循环50次)
/** * 传统线程通信(子线程运行10次,主线程运行100次,如此循环50次) * @author 谭飞 * @date 2012-02-02 */public class TraditionalThreadCommunication { /** * @param args */ public static void main(String[] arg原创 2012-02-03 09:38:12 · 2904 阅读 · 0 评论 -
线程的互斥操作(运用synchronized线程锁安全)
/** * 线程的互斥操作(运用synchronized线程锁安全) * @author 谭飞 * @date 2012-02-02 */public class TraditionalThreadSynchronized { /** * @param args */ public static void main(String[] args) {原创 2012-02-03 09:38:50 · 455 阅读 · 0 评论 -
线程池案例(jdk1.5提供的线程池的创建以及线程池定时器的运用)
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;/** * 线程池案例(jdk1.5提供的线程池的创建以及线程池定时器的运用) * @author 谭飞 * @date 2012-02-03 *原创 2012-02-06 08:45:41 · 1541 阅读 · 0 评论 -
线程通信(子线程运行10次,主线程运行100次,如此循环50次)[用condition替代wait,notify等待和唤醒操作]
import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 线程通信(子线程运行10次,主线程运行100次,如此循环50次)[用condition替代wait,notify等待原创 2012-02-06 08:44:04 · 2296 阅读 · 0 评论 -
读写锁的操作1(设计六个线程,三个线程写入数据,三个线程读取数据,请用读写锁进行操作)
import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * 读写锁的操作1(设计六个线程,三个线程写入数据,三个线程读取数据,请用读写锁进行操作) * @author 谭飞 * @date 2012-02-03 */pub原创 2012-02-06 08:45:01 · 945 阅读 · 0 评论 -
Semaphore信号灯运用
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;/** * Semaphore信号灯运用 * @author 谭飞 * @date 2012-02-07 */public class Sem原创 2012-02-07 17:33:46 · 489 阅读 · 0 评论