51
Dev开发社区
首页
文章
问答
工具
搜索
登录
注册
#毛主席的六大读书笔记
并发编程学习笔记(8)----ThreadLocal的使用及源码分析
ThreadLocal,顾名思义,就是线程的本地变量,ThreadLocal会为每个线程创建一个本地变量副本,使得使用ThreadLocal管理的变量在多线程的环境下,每个线程都是访问的是自己内部的副本变量,将全局变量局部化,跟局部变量一样的使用,从而避免了一些线程安全的问题。比如在数据库连接池中获取的连接时,此时...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----ThreadLocal
并发编程学习笔记(7)----线程之间的通信
前面所有的线程都是独立运行的,几个线程之间只会存在竞争锁和资源的管理,但是在多线程的环境下可能会需要多个线程同时协作完成,当某个线程执行一定操作之后,需要其他线程的帮助才能执行完成,此时该线程该如何去通知其他线程执行任务,当其他线程执行时该线程又处于什么状态,当其他线程执行完成后,又该如何使当前线程执行。这就是我们...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----
并发编程学习笔记(6)----公平锁和ReentrantReadWriteLock使用及原理
(一)公平锁 1、什么是公平锁? 公平锁指的是在某个线程释放锁之后,等待的线程获取锁的策略是以请求获取锁的时间为标准的,即使先请求获取锁的线程先拿到锁。 2、在java中的实现? 在java的并发包中提供了ReentrantLock提供了重入锁并且也提供了公平锁(FairSync)和非公平锁(NonfairSy...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----
并发编程学习笔记(5)----AbstractQueuedSynchronizer(AQS)原理及使用
(一)什么是AQS?阅读java文档可以知道,AbstractQueuedSynchronizer是实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量、事件,等等)提供一个框架,它是一个依靠单个原子 int 值来表示状态的大多数同步器的一个基础类。在jdk中他的实现的类有Semaph...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----AbstractQueuedSynchronizer
并发编程学习笔记(4)----jdk5中提供的原子类及Lock使用及原理
(1)jdk中原子类的使用:jdk5中提供了很多原子类,它会使变量的操作变成原子性的。原子性:原子性指的是一个操作是不可中断的,即使是在多个线程一起操作的情况下,一个操作一旦开始,就不会被其他线程干扰。jdk中的rt.jar中提供给了很多的原子性操作类。它们是位于java.util.concurrent.atomic包...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----jdk5
并发编程学习笔记(3)----synchronized关键字以及单例模式与线程安全问题
再说synchronized关键字之前,我们首先先小小的了解一个概念-内置锁。什么是内置锁?在java中,每个java对象都可以用作synchronized关键字的锁,这些锁就被称为内置锁,每个对象的锁的信息都存在对象头中所以synchronized关键字在使用过程中之所以能够保证线程的安全,也是因为使用了锁。下面就说...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----synchronized
并发编程学习笔记(2)----使用多线程带来的风险
说到多线程带来的风险,首先要了解一个概念-临界区。 什么是临界区? 临界区是用来表示一种公共的资源(共享数据),它可以被多个线程使用,但是在每次只能有一个线程能够使用它,当临界区资源正在被一个线程使用时,其他的线程就只能等待当前线程执行完之后才能使用该临界区资源。 比如一台饮水机,比如办公室办公室里有...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----
并发编程学习笔记(1)----多线程几种实现方式
多线程是指机器支持在同一时间执行多个线程,能够提高cpu的利用率,提高程序的执行效率。(1)继承Thread类多线程可以通过继承Thread类并重新Thread的run方法来启动多线程。然后通过Thread的start方法来启动线程。上代码:packagecom.wangx.thread.t1;publicclassD...
代码星球
·
2021-02-12
并发
编程
学习
笔记
----
RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群
由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全局搜索9876,将所有使用9876端口的地方改为9877。 在终端打开,使用:mvn-Prelease-all-DskipTestscleaninstal...
代码星球
·
2021-02-12
RocketMQ
学习
笔记
----RocketMQ
搭建
RocketMQ学习笔记(15)----RocketMQ的消息模式
在前面学习ActiveMQ时,看到ActiveMQ可以是队列消息模式,也可以是订阅发布模式。 同样,在RocketMQ中,也存在两种消息模式,即是集群消费模式和广播消费模式。 跟AciiveMQ一样,当存在多个消费者时,消息通过一定负载均衡策略,将消息分发到多个consumer中。 如图: 在RockeMQ...
代码星球
·
2021-02-12
RocketMQ
学习
笔记
----RocketMQ
消息
RocketMQ学习笔记(14)----RocketMQ的去重策略
(1).发送消息阶段,不允许发送重复的消息 (2).消费消息阶段,不允许消费重复的消息。 只有以上两个条件都满足情况下,才能认为消息是“ExactlyOnlyOnce”,而要实现以上两点,在分布式系统环 境下,不可避免要产生巨大的开销。所以RocketMQ为了追求高性能,并不保证此特性,要求在业务上进行去重,...
代码星球
·
2021-02-12
RocketMQ
学习
笔记
----RocketMQ
去重
RocketMQ学习笔记(13)----RocketMQ的Consumer消息重试
生产者端的消息失败,也就是Producer往MQ上发消息没有发送成功,比如网络抖动导致生产者发送消息到MQ失败。 这种消息失败重试我们可以手动设置发送失败重试的次数。 Consumer消费消息失败后,要提供一种重试机制,令消息再消费一次,Consumer消费消息失败通常可以认为有以下几种情况 1.由于...
代码星球
·
2021-02-12
RocketMQ
学习
笔记
----RocketMQ
Consumer
RocketMQ学习笔记(12)----RocketMQ的Consumer API简介
由于消息的消费方式有两种,所以两种方式也有不同的API: 1. consumerGroup:默认值为DEFAULT_CONSUMER,Consumer组名,多个Consumer如果属于一个应用,订阅同样的消息,且消费逻辑一致,则应该将它们归为同一组 2. messageModel:消息模型,默认...
代码星球
·
2021-02-12
RocketMQ
学习
笔记
----RocketMQ
Consumer
RocketMQ学习笔记(11)----RocketMQ的PushConsumer和PullConsumer
推,Broker主动向Consumer推消息,它Consumer的一种,应用通常向对象注册一个Listener接口,一旦接收到消息,Consumer对象立刻回调Linstener接口方法。Push方式里,consumer把轮询过程封装了,并注册MessageListener监听器,取到消息后,唤醒MessageLi...
代码星球
·
2021-02-12
RocketMQ
学习
笔记
----RocketMQ
PushConsumer
RocketMQ学习笔记(10)----RocketMQ的Producer 事务消息使用
RocketMQ除了支持普通消息,顺序消息之外,还支持了事务消息。 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保...
代码星球
·
2021-02-12
RocketMQ
学习
笔记
----RocketMQ
Producer
首页
上一页
...
15
16
17
18
19
...
下一页
尾页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他