【转】-synchronized与Lock的区别与使用
摘要:
详解synchronized与Lock的区别与使用 该博客转载自淳安郭富城的详解synchronized与Lock的区别与使用 1. 引言: 昨天在学习别人分享的面试经验时,看到Lock的使用。想起自己在上次面试也遇到了synchronized与Lock的区别与使用。于是,我整理了两者的区别和
【转】-Java实现生产者和消费者的5种方式
摘要:
Java实现生产者和消费者的5种方式 该博客转载自掘金的Java实现生产者和消费者的5种方式 1. 前言 生产者和消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一个存储空间,生产者往存储空间中添加产品,消费者从存储空间中取走产品,当存储空间为空时,消费者阻塞,当存储空间满
转-Java并发编程:阻塞队列
摘要:
Java并发编程:阻塞队列 该博客转载自Matrix海 子的Java并发编程:阻塞队列 Java并发编程:阻塞队列 在前面几篇文章中,我们讨论了同步容器(Hashtable、Vector),也讨论了并发容器(ConcurrentHashMap、CopyOnWriteArrayList),这些工
【转】-Java 中的阻塞队列
摘要:
Java 中的阻塞队列 该博客转载自方腾飞的聊聊并发(七)——Java 中的阻塞队列 1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队
【转】-Java并发之CyclicBarrier
摘要:
Java并发之CyclicBarrier 该博客转载自巴蜀码哥 ** 的Java并发之CyclicBarrier** barrier(屏障)与互斥量、读写锁、自旋锁不同,它不是用来保护临界区的。相反,它跟条件变量一样,是用来协同多线程一起工作的。 条件变量是多线程间传递状态的改变来达到协同
【转】-CountDownLatch详解
摘要:
CountDownLatch详解 该博客转载自爱宝贝丶 的CountDownLatch详解 1. 简介 CountDownLatch中count down是倒数的意思,latch则是门闩的含义。整体含义可以理解为倒数的门栓,似乎有一点“三二一,芝麻开门”的感觉。CountDownLatch的作用
【转】-Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
摘要:
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 该博客转载自Matrix海 子的Java并发编程:CountDownLatch、CyclicBarrier和Semaphore 在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程
【转】-java多线程读写锁ReadWriteLock
摘要:
Java多线程中读写锁ReadWriteLock的使用 该博客转载自lavimer的Java多线程中读写锁ReadWriteLock的使用 1. 概念 读写锁分为读锁和写锁,多个读锁之间是不需要互斥的(读操作不会改变数据,如果上了锁,反而会影响效率),写锁和写锁之间需要互斥,也就是说,如果只是
【转】-Java锁解析
摘要:
不可不说的Java“锁”事 **该博客转载自美团技术团队 的不可不说的Java“锁”事 ** 前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁
【转】-并发下的集合
摘要:
高并发下的Java数据结构(List、Set、Map、Queue) 本文转载至薛勤的博客的高并发下的Java数据结构(List、Set、Map、Queue) 由于并行程序与串行程序的不同特点,适用于串行程序的一些数据结构可能无法直接在并发环境下正常工作,这是因为这些数据结构不是线程安全的。本节
【转】-Java CAS操作的ABA问题
摘要:
Java CAS操作的ABA问题 本文转载至ksfzhaohui的Java CAS操作的ABA问题 1. CAS介绍 比较并交换(compare and swap, CAS),是原子操作的一种,可用于在多线程编程中实现不被打断的数据交换操作,从而避免多线程同时改写某一数据时由于执行顺序不确定性
【转】-Java CAS 原理剖析
摘要:
Java CAS 原理剖析 本文转载来自卡巴拉的树的Java CAS 原理剖析 在Java并发中,我们最初接触的应该就是synchronized关键字了,但是synchronized属于重量级锁,很多时候会引起性能问题,volatile也是个不错的选择,但是volatile不能保证原子性,只能
volatile关键字解析
摘要:
Java并发编程:volatile关键字解析 本文转载来自于https://www.cnblogs.com/dolphin0520/Matrix海 子的Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的
nginx部署vue项目
摘要:
1. 前言 此文档主要介绍如何使用nginx部署vue等前端项目,并配置SSL证书部署的前提下是服务器已经安装nginx,前端项目已打包成静态文件 2. 部署过程 2.1 申请SSL证书 向服务商(阿里云)申请SSL证书,并且下载nginx版本的key和密匙,放置于nginx的安装目录之下 2.2
【转】-Java反射
摘要:
Java 反射由浅入深 | 进阶必备 原文链接 本博文主要记录我学习 Java 反射(reflect)的一点心得,在了解反射之前,你应该先了解 Java 中的 Class 类,如果你不是很了解,可以先简单了解下。 一、Java 反射机制 参考了许多博文,总结了以下个人观点,若有不妥还望指正: Jav
转-OAuth2.0 原理流程及其单点登录和权限控制
摘要:
原文链接 单点登录是多域名企业站点流行的登录方式。本文以现实生活场景辅助理解,力争彻底理清 OAuth2.0 实现单点登录的原理流程。同时总结了权限控制的实现方案,及其在微服务架构中的应用。 1 什么是单点登录 1.1 多点登录 传统的多点登录系统中,每个站点都实现了本站专用的帐号数据库和登录模块。
手写MyBatis
摘要:
1. 前言 本篇博客,将使用JDK动态代理、注解、反射等技术,编写一个最简单的MyBatis,可基本实现对象的增删查改 2. 注解的定义 2.1 Delete注解 /** * @ClassName Delete * @Descriiption 删除注解 * @Author yanjiantao *
OAuth2.0登录的四种方式
摘要:
OAuth登录的四种方式 1. 授权码 授权码(authorization code)方式,指的是第三方应用先申请一个授权码,然后再用该码获取令牌。 这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完
git提交emoji指南
摘要:
emoji 指南 emoji emoji 代码 commit 说明 🎉 (庆祝) tada 初次提交 ✨ (火花) sparkles 引入新功能 🔖 (书签) bookmark 发行/版本标签 🐛 (bug) bug 修复 bug 🚑 (急救车) ambulance 重要补丁 🌐 (地球)
swagger注解文档
摘要:
swagger 注解文档 1. @Api() 作用于类,放置于 controller 的一个类上,标志这个类是 swagger 资源 1.1 参数: 参数名称 参数介绍 备注 value 说明,可以使用 tags 替代 tags 说明 1.2 实例代码: @Api(value = "swagger2