并发编程
并发类
叁滴水
人生就是一边拥有一边失去,一边选择一边放弃...
展开
-
【开发经验】java代码中实现限流
限流目的 限流的目的是防止恶意请求流量、恶意攻击、或者防止流量超过系统峰值。 流量达到峰值时,会有一个熔断策略,常见的熔断策略: 直接拒绝请求,跳转到一个“服务器出小差”页面 排队等待,比如火车票等待。 服务降级,返回最基本的用户可接受的数值。 到达峰值的时候进行排队。 定位经纬度定位,精确定位到达峰值,返回大概定位,比如百度地图,有时候可以定位到自己的详细位置,有时候显示自己所在的城市。 限流方式 漏桶 漏桶是有一个进水口,一个出水口。桶本身具有一个恒定的速率往下漏水,而上方时快时慢的会有原创 2020-07-08 21:16:12 · 3841 阅读 · 0 评论 -
【java并发编程】ReentrantLock源码分析
1.为什么使用锁,不使用锁会有什么影响? public class Test { public static int count=0; private static ReentrantLock lock = new ReentrantLock(); public static void main(String[] args) { for(int i = 0 ...原创 2020-01-12 21:13:43 · 1657 阅读 · 0 评论 -
【java并发编程】多线程异常处理
1.场景 多线程充分发挥了系统的性能,但是调用Thread.start()方法之后,如果线程有异常造成线程终止,主线程无法及时获取。 public static void main(String[] args) { Thread thread = new Thread(() -> { //todo 添加要执行内容 for...原创 2020-01-09 20:50:05 · 1685 阅读 · 0 评论 -
【java并发编程】线程等待
(java并发编程)异步编程 1.场景 假如有个需求,随机出10个数,打印比x大的数,那我们可以用for循环这10个数,找到比x大的数即可; 那么如果是随机100万个数中打印比x大的数,那这样我们就可以充分利用多线程的优势了。 public static void main(String[] args) { final int x=4000; // ...原创 2020-01-09 20:17:42 · 1557 阅读 · 0 评论 -
【java并发编程】Lock接口
java显式锁:Lock接口 JDK1.5开始引入显式锁,Lock与使用synchronized方法和语句相比,实现提供了更广泛的锁定操作。它们允许更灵活的结构,可以具有完全不同的属性。 1.接口说明 Modifier and Type Method and Description void lock()Acquires the lock.(获取锁) void lock...原创 2019-12-09 22:03:34 · 1448 阅读 · 0 评论 -
【java并发编程】 CountDownLatch、CyclicBarrier、Semaphore区别
1.倒计时协作器CountDownLatch CountDownLatch可以用来实现一个(或者多个)线程等待其他线程完成一组特定的操作之后继续运行。 场景:cf房间中有10个玩家,9个玩家必须全部准备才能开始游戏; 代码实现: public class CountDownLatchTest { public static final CountDownLatch countD...原创 2019-12-05 21:41:59 · 1488 阅读 · 0 评论 -
《java并发编程》通知与唤醒机制
等待与通知 在java中,Object类有方法Object.wait()/Object.wait(long)和Object.notify()/Object.notifyAll()可以实现等待和通知; Object.wait() 线程暂停,等待唤醒 Object.wait(long) 线程暂停一段时间,等待唤醒,如果超时自动启动 Object.notify()唤醒被暂停的任意一个线程 Obje...原创 2019-12-05 21:35:57 · 1725 阅读 · 0 评论 -
【开发经验】redis和zookeeper分布式锁对比
redis和Zookeeper分布式锁对比 redis分布式锁 首先必须知道的几个redis命令 redis 命令学习 setnx SETNX 是【SET if Not eXists】(如果不存在,则 SET)的简写; 当且仅当 key 不存时,将 key 的值设为 value 。若给定的 key 已经存在,则 SETNX 不做任何动作。 返回值: 设置成功,返回 1 。 设置失败,返回 0 ...原创 2019-11-24 19:50:37 · 1606 阅读 · 1 评论