摘要: package com.web.util; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; im... 阅读全文
posted @ 2017-05-25 13:44 superGG 阅读(223) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 阻塞队列通信 . * 死锁:http://www.360doc.com/content/11/0904/13/834759_145686705.shtml * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class BlockingQueueCommunication { ... 阅读全文
posted @ 2017-05-25 12:28 superGG 阅读(209) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 队列(阻塞/非阻塞)、LinkedQueue不固定大小 * 先进先出,如队列大小为8,如放进了8个数据,就不能继续放了,会进入阻塞,如果是非阻塞队列则会报错 * * Throwsexception Special value()返回值判断 Blocks(阻塞) Times out Insert add... 阅读全文
posted @ 2017-05-25 12:27 superGG 阅读(232) 评论(0) 推荐(0) 编辑
摘要: /** * @描述: 阻塞队列 ,先放进来先取走 * 缓冲区:隔离效果,平均每一秒钟收一个短信,放在池子里 * 可以放可以取,当满了不能放,取走了之后才能取 * 当空的时候不能取,只有放了之后才能取 * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class BoundedBuffer { fi... 阅读全文
posted @ 2017-05-25 10:43 superGG 阅读(244) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: Semaphore实现信号灯 . * Semaphore可以维护当前访问自身的线程个数,并提供了同步机制,使用Semaphore可以控制同时访问资源的线程个数,例如实现一个文件允许 * * 等待的线程可以是随机获取优先机会,也可以是按照先来后到的顺序获取机会,这取决于构造Semaphore对象时传入的参数选项 * * 单个信号量的Semaphore对... 阅读全文
posted @ 2017-05-25 10:41 superGG 阅读(240) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 同步工具 * 表示大家彼此等待,大家集合好后才开始出发,分散活动后又在指点地点集合碰合 . * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class CyclicBarrierTest { public static void main(String[] args) ... 阅读全文
posted @ 2017-05-25 10:40 superGG 阅读(187) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 用于实现两个人之间的数据交换,每个人完成一定的事务后想与对方交换数据,第一个先拿出数据的人一直等待 * 直到第二个人拿到数据 到来时,才能彼此交换数据. * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class ExchangerTest { public stati... 阅读全文
posted @ 2017-05-25 10:40 superGG 阅读(234) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 设计一个缓存器 ReadLock提高性能. * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class CacheDemo { private Map cache = new HashMap(); public static void main(Stri... 阅读全文
posted @ 2017-05-25 10:39 superGG 阅读(288) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: Callable Future * * 程序运行一个线程,线程运行结束后,我们可以获取另一个线程的结果 * * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class CallableAndFuture { /** * 单个任务 ... 阅读全文
posted @ 2017-05-25 10:38 superGG 阅读(244) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 集合异常测试 . * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 . */ public class CollectionModifyExceptionTest { public static void main(String[] args) { Collection users = ne... 阅读全文
posted @ 2017-05-25 10:36 superGG 阅读(178) 评论(0) 推荐(0) 编辑
摘要: public class ConditionCommunication { /** * @param args */ public static void main(String[] args) { final Business business = new Business(); new Thread( ... 阅读全文
posted @ 2017-05-25 10:35 superGG 阅读(579) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 倒计时器 . * 犹如倒计时计数器,调用CountDownLatch对象的countDown方法就将计数器减1,当计算器为0的时候 * 则所有等待者或单个等待者开始执行 * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */ public class CountdownLatchTest { ... 阅读全文
posted @ 2017-05-25 10:30 superGG 阅读(168) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,写锁与写锁互斥,这是由JVM自己控制的,可以同时读,但不能同时写 那就上读锁; * 如果你的代码只读数据,可以有很多人同时读,但不能同时写那就上读锁. * 如果你的代码修改数据,只能有一个人在写,且不能同时写,那就上写锁 * ... 阅读全文
posted @ 2017-05-25 10:21 superGG 阅读(201) 评论(0) 推荐(0) 编辑
摘要: ** * * @描述: Lock比传统线程模型中的synchronized方式更加面向对象、与生活中的锁类似,锁本身也应该是一个对象,两个线程执行的代码片段要实现同步互排的效果 * 它们必须用同一个LOCK,锁是上线代表要操作的资源内部类的内部方法上,而不是线程的方法中 . * @作者: Wnj . * @创建时间: 2017年5月16日 . * @版本: 1.0 .... 阅读全文
posted @ 2017-05-25 10:20 superGG 阅读(233) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 线程范围内共享变量的概念与作用 . * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */ public class ThreadLocalTest { private static ThreadLocal x = new ThreadLocal(); private static Threa... 阅读全文
posted @ 2017-05-25 10:17 superGG 阅读(221) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 线程池 . * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */ public class ThreadPoolTest { /** * @param args */ public static void main(String[] args) { ... 阅读全文
posted @ 2017-05-25 10:16 superGG 阅读(155) 评论(0) 推荐(0) 编辑
摘要: package cn.itcast.heima2; import java.util.HashMap; import java.util.Map; import java.util.Random; /** * * @描述: 线程范围内共享变量的概念与作用 . * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */ public cl... 阅读全文
posted @ 2017-05-25 10:15 superGG 阅读(277) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 子线程循环10次,接着回到主线程循环100次,又接着回到子线程循环10次,再接着回到主线程又循环100次,如次循环50次,请写出程序 .. * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */ public class TraditionalThreadCommunication { /**... 阅读全文
posted @ 2017-05-25 10:01 superGG 阅读(1818) 评论(0) 推荐(0) 编辑
摘要: /** * * @描述: 传统定时器 . * @作者: Wnj . * @创建时间: 2017年5月15日 . * @版本: 1.0 . */ public class TraditionalTimerTest { private static int count = 0; public static void main(String[] arg... 阅读全文
posted @ 2017-05-25 09:59 superGG 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 1 public class TraditionalThreadSynchronized { 2 3 /** 4 * @param args 5 */ 6 public static void main(String[] args) { 7 new TraditionalThreadSynchronized... 阅读全文
posted @ 2017-05-25 09:57 superGG 阅读(195) 评论(0) 推荐(0) 编辑