在前面学习 synchronized 的时候,有讲到 wait/notify 的基本使用,结合 synchronized 可以实现对线程的通信。那么这个时候我就在思考了,既然 J.U.C 里面提供了锁的实现机制,那 J.U.C 里面有没有提供类似的线程通信的工具呢? 于是找阿找,发现了一个 Cond ...
分类:
其他好文 时间:
2020-06-07 17:57:13
阅读次数:
65
VRRP 协议 虚拟路由冗余协议(Virtual Router Redundancy Protocol)是解决局域网中配置静态网关出现单点失效现象的路由协议,通过将多台设备虚拟化成一台设备,如果其中一台设备出现故障,那么另一台设备可以迅速接替其工作,已保证通讯的可靠性和连续性 。 公司的网络是通过网 ...
分类:
其他好文 时间:
2020-06-07 09:14:19
阅读次数:
68
前言 Java 线程通信是将多个独立的线程个体进行关联处理,使得线程与线程之间能进行相互通信。比如线程 A 修改了对象的值,然后通知给线程 B,使线程 B 能够知道线程 A 修改的值,这就是线程通信。 wait/notify 机制 一个线程调用 Object 的 wait() 方法,使其线程被阻塞; ...
分类:
编程语言 时间:
2020-06-07 01:00:59
阅读次数:
75
前提 首先该场景是一个酒店开房的业务。为了朋友们阅读简单,我把业务都简化了。 业务:开房后会添加一条账单,添加一条房间排期记录,房间排期主要是为了房间使用的时间不冲突。如:账单A,使用房间1,使用时间段为2020-06-01 12:00 - 2020-06-02 12:00 ,那么还需要使用房间1开 ...
分类:
编程语言 时间:
2020-06-06 11:14:23
阅读次数:
63
1前言生产环境中一台MySQL主机存在单点故障,所以我们要确保MySQL的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作。MySQL的高可用方案一般有如下几种:keepalived+双主MHAPXCMMMHeartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC。本节主要介绍利用keepalived实现MySQL数据库
分类:
数据库 时间:
2020-06-06 09:21:25
阅读次数:
64
package club.interview.thread.print; /** * 3个线程从0到100轮流打印。要求输出结果如下 * Thread-0:0 * Thread-1:1 * Thread-2:2 * Thread-0:3 * <p> * 知识点扫盲: * 1. 类锁的wait、not ...
分类:
编程语言 时间:
2020-06-03 20:37:09
阅读次数:
96
实现步骤 设计架构模式:在一个集群里,有三台服务器,其中一台使用磁盘模式,另两台使用内存模式。两台内存模式的节点速度更快,因此通过客户端连接访问它们。但是在客户端不可能分别连接两台内存节点,肯定是通过前端反向代理去轮询分发请求。如果担心前端反向代理服务器故障,可以通过keepalived软件做一个高 ...
分类:
其他好文 时间:
2020-06-03 15:40:22
阅读次数:
69
JDK并发包 3.1同步控制 synchronized、obj.wait()、obj.notify() 3.1.1关键字synchronized的功能扩展:重入锁 java.util.concurrent.locks.ReentrantLock类来实现的 手动加锁:lock.lock() 手动解锁: ...
分类:
编程语言 时间:
2020-06-03 13:56:57
阅读次数:
61
(1)notifyAll无法唤醒的问题 一个线程处于wait状态,另一个线程无法唤醒它。主要原因不是共享变量的问题,只要共享变量为对象成员或静态变量即可。因为wait()和notifyAll必须属于同一实体,所以当调用了a.wait()后,必须调用a.notifyAll才能唤醒a线程。 (2)jav ...
分类:
编程语言 时间:
2020-05-29 13:57:04
阅读次数:
76
1. 部署keepalived - apiserver高可用(任选两个master节点) 1.1 安装keepalived # 在两个主节点上安装keepalived(一主一备) $ yum install -y keepalived 1.2 创建keepalived配置文件 # 创建目录 $ ss ...
分类:
Web程序 时间:
2020-05-28 23:18:50
阅读次数:
250