标签:CountDownLatch

Java

Java 线程状态和等待唤醒机制和线程池的实现

1

xirruiqiang 发布于 2020-03-30

1.概念 线程一共有6中状态,相互之间可以互相转换。 等待唤醒案例(线程之间的通信) 实现: 等待唤醒案例:线程之间的通信 创建一个顾客线程(消费者):告知老板要的包子的种类和数量,调用wait方法,放弃cpu的执行,进入到WAITING状态(无限等待) 创建一个老板线程(生产者...

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

Java

浅析AQS(AbstractQueueSynchronizer)

1

xiaoli.wang 发布于 2020-03-29

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

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

Java

2019Android阿里&腾讯&百度&字节&美团&网易&爱奇艺校招面试汇总

xubiao.zhuang 发布于 2020-03-27

阿里面试很喜欢问源码,优化,原理,涉及到的范围很广,还是具有一定挑战性的,以下包括阿里实习二面和校招二面,笔者都止步于二面,阿里可以去找找内推(笔者实习投递时笔试做的差,本来以为挂了,但可能因为找的内推所以还是给我面试了,后续又加了一轮笔试,校招时也是找的内推直接面试了没有笔试)...

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

Java

[升级版]通过 Jdbc + Job 解决跨库大表数据迁移

小丁 发布于 2020-03-27

前面写过一篇 通过 Jdbc + Job 解决跨库大表数据迁移 ,那只是个初始版本,后面对其进行了优化改造,数据迁移性能大幅度提升。 优化点 单实例 Job 优化为多实例 Job 单线程优化为多线程 普通偏移优化为分段偏移 代码 下面是主要代码,其它代码可参考 通过 Jdbc +...

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

Spring

Spring官网阅读系列(九):Spring中Bean的生命周期(上)

5

puefu.he 发布于 2020-03-27

在之前的文章中,我们一起学习过了官网上容器扩展点相关的知识,包括FactoryBean,BeanFactroyPostProcessor,BeanPostProcessor,其中BeanPostProcessor还剩一个很重要的知识点没有介绍,就是相关的BeanPostProce...

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

Java

Java 后端 100多道面试题,多看点题,没坏处!

1

songhua.gao 发布于 2020-03-25

下面列出这份 Java 面试问题列表包含的主题 多线程,并发及线程基础 数据类型转换的基本原则 垃圾回收(GC) Java 集合框架 数组 字符串 GOF 设计模式 SOLID 抽象类与接口 Java 基础,如 equals 和 hashcode 泛型与枚举 Java IO 与 ...

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

Java

Java线程池详解及常用方法

1

yanxinchi 发布于 2020-03-24

前言 最近被问到了线程池的相关问题。于是准备开始写一些多线程相关的文章。这篇将介绍一下线程池的基本使用。 Executors Executors是concurrent包下的一个类,为我们提供了创建线程池的简便方法。 Executors可以创建我们常用的四种线程池: (1)newC...

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

Java

java之AQS和显式锁

9

dulong 发布于 2020-03-23

本次内容主要介绍AQS、AQS的设计及使用、 ReentrantLock、 ReentrantReadWriteLock以及手写一个可重入独占锁 1、什么是AQS ? A QS,队列同步器AbstractQueuedSynchronizer的简写,JDK1.5引入的, 是用来构建...

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

Java

rocketMQ(4.6.1)系列教程–namesrv 篇

1

xiaoli.wang 发布于 2020-03-22

Namesrv Namesrv 架构设计 namesrv 作用 namesrv 充当服务注册中心的作用,向 producer、consumer 提供 broker 的信息,并将不可用的 broker 及时剔除。有点类似 eureka-server 的作用。与 eureka-ser...

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

Java

队列同步器(AQS)的实现原理

2

songhua.gao 发布于 2020-03-22

如下图所示是队列同步器的基本结构,通过一个int类型的state对象来表示同步状态,对锁的竞争就是通过修改这个同步状态和对这个状态的值来进行判断实现,使用一个FIFO双向队列来管理竞争同步状态的线程,把这些线程封装成一个队列节点加入到队列中。 尝试独占式获取锁 protected...

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

Java

从0学习java并发编程实战-读书笔记-基础构建模块(4)

刘莉莉 发布于 2020-03-21

同步容器类 同步容器类包括Vector和Hashtable,这两个是早期JDK的一部分。此外还包括在JDK1.2中添加Collections.synchronizedXxx等工厂方法,这些类实现线程安全的方式是:将它们的状态封装起来,并对公有方法进行同步,使得每次只有一个线程能访...

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

Java

Java中的锁原理、锁优化、CAS、AQS详解

23

zhuangli 发布于 2020-03-20

点击上方 “ 匠心零度 ” ,选择“ 设为星标 ” 做积极的人,而不是积极废人 作者:景小财 www.jianshu.com/p/e674ee68fd3f 1、为什么要用锁? 锁-是为了解决并发操作引起的脏读、数据不一致的问题。 2、锁实现的基本原理 2.1、volatile J...

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

Java

曹工杂谈:花了两天时间,写了一个netty实现的http客户端,支持同步转异步和连接池(1)–核心逻辑…

1

Harries 发布于 2020-03-19

背景 先说下写这个的目的,其实是好奇,dubbo是怎么实现同步转异步的,然后了解到,其依赖了请求中携带的请求id来完成这个连接复用;然后我又发现,redisson这个redis客户端,底层也是用的netty,那就比较好奇了:netty是异步的,上层是同步的,要拿结果的,同时呢,r...

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

Java

java多线程之Phaser

yeseng 发布于 2020-03-18

java多线程之Phaser 前面的文章中我们讲到了CyclicBarrier、CountDownLatch的使用,这里再回顾一下CountDownLatch主要用在一个线程等待多个线程执行完毕的情况,而CyclicBarrier用在多个线程互相等待执行完毕的情况。 Phaser...

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

Java

select for update不交由spring事务管理的正确姿势

10

darida 发布于 2020-03-18

SqlSession sqlSession = null; try { InputStream in = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSes...

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

Java

volatile 手摸手带你解析

8

xubiao.zhuang 发布于 2020-03-17

前言 volatile 是 Java 里的一个重要的指令,它是由 Java 虚拟机里提供的一个轻量级的同步机制。一个共享变量声明为 volatile 后,特别是在多线程操作时,正确使用 volatile 变量,就要掌握好其原理。 特性 volatile 具有 可见性 和 有序性 ...

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