标签:rsync

Java

Java读源码之ReentrantLock

3

小丁 发布于 2020-04-07

前言 ReentrantLock 可重入锁,应该是除了 synchronized 关键字外用的最多的线程同步手段了,虽然JVM维护者疯狂优化 synchronized 使其已经拥有了很好的性能。但 ReentrantLock 仍有其存在价值,例如可以感知线程中断,公平锁模式,可以...

阅读(8)评论(0)赞 (0)

Java

JAVA concurrency — ReentrantLock 源码详解

wenming.gapo 发布于 2020-04-07

概述 在jdk中内置了可重入锁 synchronized 来维护代码的同步,但是 synchronized 是在虚拟机层面实现,并且功能比较少,难以满足一些特殊的情况,所以在 concurrency 包中就有了类似的方法 ReentrantLock 。今天我们就一起来分析下 Re...

阅读(10)评论(0)赞 (0)

Java

深入理解Java多线程与并发框(第⑩篇)——并发辅助工具类(很好的玩的工具类)

xiaoli.wang 发布于 2020-03-30

使用场景:用于 有且仅有两个线程 间的 数据传输,就就是线程间的 通信 。它是 生产者/消费者 d的 wait() / notify() 的最佳替代工具。 核心原理:方法 exchange()阻塞特性:此方法被调用后等待其他线程来取数据,如果没有其他线程取得数据,则一直 阻塞。 ...

阅读(19)评论(0)赞 (0)

Java

浅析AQS(AbstractQueueSynchronizer)

1

xiaoli.wang 发布于 2020-03-29

概念 AQS是一个实现同步锁和基于先进先出队列相关的同步器的框架,它的目的是为大多数依赖单个原子变量来表示锁状态的同步器提供提供基础框架,也就是说这个框架已经设计出一套完备安全的同步机制,当你需要实现你的自定义规则的同步器的话,只需要继承并重写它的一些方法(比如tryAcquir...

阅读(24)评论(0)赞 (0)

Java

使用Jenkins+BlueOcean构建Nuxt应用(Jenkinsfile配置)

xiaoli.wang 发布于 2020-03-28

pipeline { agent { label 'my-blog' # 因为我的博客服务器已经搭建了node环境,所以就用他来构建啦 } stages { stage('build') { steps { sh './build.sh' } } stage('deploy') ...

阅读(28)评论(0)赞 (0)

Java

小白之vulhub靶机之旅–第一篇

45

刘莉莉 发布于 2020-03-26

声明: Tide安全团队原创文章,转载请声明出处! 文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担! 最近小白除了在搞PHP代码审计外,还在不断的对开源的漏洞靶机进行复现,虽说靶机,相比较真实的渗透测试环境还...

阅读(38)评论(0)赞 (0)

Java

KubeSphere排错实战 荐

8

刘莉莉 发布于 2020-03-23

概述:近期在使用QingCloud的Kubesphere,极好的用户体验,私有化部署,无基础设施依赖,无 Kubernetes 依赖,支持跨物理机、虚拟机、云平台部署,可以纳管不同版本、不同厂商的 Kubernetes 集群。在k8s上层进行了封装实现了基于角色的权限控制,Dev...

阅读(20)评论(0)赞 (0)

Java

java中使用Semaphore构建阻塞对象池

刘莉莉 发布于 2020-03-21

java中使用Semaphore构建阻塞对象池 Semaphore是java 5中引入的概念,叫做计数信号量。主要用来控制同时访问某个特定资源的访问数量或者执行某个操作的数量。 Semaphore中定义了一组虚拟的permits,通过获取和释放这些permits,Semaphor...

阅读(28)评论(0)赞 (0)

Java

如何计算服务限流的配额

darida 发布于 2020-03-19

问题 请求被限流 之前的文章提到过我们服务使用 Hystrix 进行服务限流,使用的是信号量方式,并根据接口的响应时间和服务的峰值 QPS 设置了限流的配额。 限流配额的计算方式为: 我们接口单机单个接口的峰值 QPS 为 1000,平均影响时长 15ms,我们认为 Hystri...

阅读(26)评论(0)赞 (0)

Java

抛弃jenkins,使用node从零搭建自动化部署管理平台

7

xiaoli.wang 发布于 2020-03-18

一、背景 H5页面由于其具有发布灵活、跨平台、易于传播等突出特点,所以H5页面是引流拉新、宣传推广的重要渠道和方式,备受各公司的青睐。 小编的日常工作就是做各种面向用户的H5促销活动的开发,在整个开发周期中,结合我司的一些情况,我总结了H5活动页面的以下特点: 面向用户,流量大;...

阅读(23)评论(0)赞 (0)

Java

《吊打面试官》系列-乐观锁、悲观锁

12

yeseng 发布于 2020-03-17

前言 关于线程安全一提到可能就是加锁,在面试中也是面试官百问不厌的考察点,往往能看出面试者的基本功和是否对线程安全有自己的思考。 那锁本身是怎么去实现的呢?又有哪些加锁的方式呢? 我今天就简单聊一下乐观锁和悲观锁,他们对应的实现 CAS ,Synchronized,Reentra...

阅读(26)评论(0)赞 (0)

Java

ReentrantLock源码探究

刘莉莉 发布于 2020-03-16

ReentrantLock 是一种可重入锁,可重入是说同一个线程可以多次获取同一个锁,内部会有相应的字段记录重入次数,它同时也是一把互斥锁,意味着同时只有一个线程能获取到可重入锁。 1.构造函数 public ReentrantLock() { sync = new Nonfai...

阅读(25)评论(0)赞 (0)

Java

Java并发工具类-Semaphore解析

xiaoli.wang 发布于 2020-03-12

Semaphore(信号量)用来限制访问同一资源的线程数量。它通过初始化一个固定数量的配额,当线程要执行时,必须先获取配额才能继续执行,当获取不到时,就需要挂起等待;持有配额的线程执行完后需释放配额,并唤醒等待的线程。 使用方法 public class SemaphoreDem...

阅读(18)评论(0)赞 (0)

Java

Java中常见的并发组件

yeseng 发布于 2020-03-11

Rlock在构造的时候传入一个标记是否为fair的boolean,表示该锁在释放的时候是否偏向将权限交给等待时间最长的线程,否则对获取锁的顺序不做任何保证。公平锁会带来很大的性能损耗,但是优点是获取锁的时间方差较小,而且不会有饿死的风险. 调用Rlock的tryLock()方法的...

阅读(17)评论(0)赞 (0)

Java

这篇 ReentrantLock 看不懂,加我我给你发红包

21

小丁 发布于 2020-01-20

点击蓝色“ zhisheng ”关注我哟 加个“ 星标 ”,一起快乐成长 回答一个问题 在开始本篇文章的内容讲述前,先来回答我一个问题,为什么 JDK 提供一个 synchronized 关键字之后还要提供一个 Lock 锁,这不是多此一举吗?难道 JDK 设计人员都是沙雕吗? ...

阅读(233)评论(0)赞 (0)

Java

java架构之路(多线程)JUC并发编程之Semaphore信号量、CountDownLatch、CyclicBarrier栅栏、Executo…

9

尖兵 发布于 2020-01-19

上期回顾: 上次博客我们主要说了我们juc并发包下面的ReetrantLock的一些简单使用和底层的原理,是如何实现公平锁、非公平锁的。内部的双向链表到底是什么意思,prev和next到底是什么,为什么要引入heap和tail来值向null的Node节点。高并发时候是如何保证st...

阅读(122)评论(0)赞 (0)