随笔分类 - 高并发与多线程
摘要:使用Semaphore构建一个显示锁 package com.dwz.utils; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; public class SemaphoreExample1
阅读全文
摘要:使用Exchanger进行两个线程之间的数据交互案例: package com.dwz.utils; import java.util.concurrent.Exchanger; public class ExchangerExample1 { public static void main(Str
阅读全文
摘要:CyclicBarrier测试案例一: package com.dwz.utils; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; import java.
阅读全文
摘要:数据完整性 1.数据格式完整 2.数据大小完整 package com.dwz.utils; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent
阅读全文
摘要:1.中断主线程使await()生效 package com.dwz.utils; import java.util.concurrent.CountDownLatch; /** * 中断主线程使await()生效 */ public class CountDownLatchExample4 { pu
阅读全文
摘要:1.使用executor.awaitTermination(1, TimeUnit.HOURS); package com.dwz.utils; import java.util.Random; import java.util.concurrent.CountDownLatch; import j
阅读全文
摘要:创建目标对象 static class Simple{ private long l = 0; public Simple() { this.l = 1; System.out.println(" "); } public long get() { return this.l; } } 创建对象实例
阅读全文
摘要:创建unsafe对象 private static Unsafe getUnsafe() { try { Field f = Unsafe.class.getDeclaredField("theUnsafe"); f.setAccessible(true); return (Unsafe) f.ge
阅读全文
摘要:AtomicIntegerFieldUpdater测试类 package com.dwz.atomicApi; import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; public class AtomicIntegerFieldU
阅读全文
摘要:使用AtomicStampedReference解决CAS机制中ABA问题 package concurrency; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicStampedRefer
阅读全文
摘要:package com.dwz.atomicApi; import java.util.concurrent.atomic.AtomicBoolean; public class AtomicBooleanFlag { private final static AtomicBoolean flag
阅读全文
摘要:CAS--campareAndSet 自定义异常 package com.dwz.atomicApi; public class GetLockException extends Exception { public GetLockException() { super(); } public Ge
阅读全文
摘要:package com.dwz.atomic; import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger
阅读全文
摘要:一、Active Object模式-接收异步消息的主动对象 Active是主动的意思,因此ActiveObject就是主动对象的意思。所谓主动一般指有自己特有的线程,举例来说,java.lang.Thread类的实例就是一种主动对象。 不过,在Active Object模式中出厂的主动对象可不仅仅有
阅读全文
摘要:模拟传送带工作模式 Channel 传送带 Request 商品 TransportThread 向传送带上搬运线程 WorkerThread 从传送带上带走的线程 测试
阅读全文
摘要:分两个阶段结束线程 第一阶段:结束线程第二阶段:清理释放资源 简单版 测试 改进版 AppServer服务器 ClientHandler控制器 测试步骤: 1.启动AppServer 2.在cmd中输入指令 telnet localhost port连上服务器发送消息
阅读全文
摘要:思路:一个请求创建一个线程 Message消息体 handler简单版(有几个请求创建一个线程) handler改进版(使用线程池创建线程) 测试
阅读全文
摘要:场景:控制逻辑按步骤执行 Doug Lea的CountDownLatch实现方式 自定义一个CountDown 测试自定义CountDown 测试结果: 准备多线程处理任务。。。2 is working.4 is working.1 is working.3 is working.5 is work
阅读全文
摘要:Message消息体 MessageQueue消息队列 ProducerThread生产者 ConsumerThread消费者 测试
阅读全文
摘要:一,什么是Balking模式 如果现在不合适执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。在Balking模式中,如果守护条件不成立,就立即中断处理。 二,例子: 定期将当前数据内容写入文件中,比如文本工具的自动保存功能,定期的将数据保存到文件中。当数据内容被写入时,会完全覆盖上次写入
阅读全文

浙公网安备 33010602011771号