生产者,消费者模型 举个例子来说明,厨师,服务员,厨师做菜,服务员上菜,如果厨师没有做好菜,那么服务员就无法上菜,厨师做好了菜,然后通知服务员消费(上菜)。在这个过程之中,厨师扮演的就是生产者,服务员扮演消费者。 一句话说:生产者没有生产出来东西,消费者就必须等待着,生产者生产出来了,就通知消费者进 ...
分类:
其他好文 时间:
2019-08-21 00:31:12
阅读次数:
83
同步锁 acquire([timeout])/release(): 调用关联的锁的相应方法。 wait([timeout]): 调用这个方法将使线程进入Condition的等待池等待通知,并释放锁。使用前线程必须已获得锁定,否则将抛出异常。 notify(): 调用这个方法将从等待池挑选一个线程并通 ...
分类:
编程语言 时间:
2019-08-20 00:35:52
阅读次数:
101
锁的简单应用 用lock来保证原子性(this.count++这段代码称为临界区) 什么是原子性,就是不可分,从头执行到尾,不能被其他线程同时执行。 可通过CAS来实现原子操作 CAS(Compare and Swap): CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间 ...
分类:
其他好文 时间:
2019-08-19 11:13:03
阅读次数:
105
1.1 keepalived是什么? Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、My ...
分类:
其他好文 时间:
2019-08-18 23:44:53
阅读次数:
97
@ "TOC" 安装前准备 基础系统:CentOS 7 yum y install gcc gcc c++ autoconf automake make yum y install zlib zlib devel openssl openssl devel pcre pcre devel 1.下载k ...
分类:
系统相关 时间:
2019-08-18 19:47:54
阅读次数:
114
Future : 提前完成任务 原理:wait(),notify()的使用。 线程之间的通信 : CountDownLatch :线程计数 CyclicBarrier :循环计数 Semaphore : 信号量,比如有100个线程,但是只有10个信号量,那么就每个批次执行10个,“批次”。 Exch ...
分类:
其他好文 时间:
2019-08-18 17:45:20
阅读次数:
69
[TOC] 一 DRBD介绍 二 DRBD的模式 三 DRBD的同步协议 四 实验环境 1.3 在两台机器上添加DRBD磁盘 在Primary机器上添加一块20G的硬盘作为DRBD,分区为/dev/sdb1,不做格式化,并在本地系统创建/data目录,不做挂载操作 在Secondary机器上添加一块 ...
分类:
其他好文 时间:
2019-08-18 09:39:27
阅读次数:
114
由于运动轨迹是在子线程里面完成的,我们自然而然会想到线程的等待、唤醒,也就是wait、notify的问题了因此我们在运动过程加上就如下代码就可以了 if (pause) { try { lock.wait(); } catch (InterruptedException e) { e.printSt ...
分类:
其他好文 时间:
2019-08-17 20:23:32
阅读次数:
164
题意:建立三个线程,A线程打印10次A,B线程打印10次B,C线程打印10次C,要求线程同时运行,交替打印10次ABC。这个问题用Object的wait(),notify()就可以很方便的解决。 代码如下: public class MyThreadPrinter2 implements Runna ...
分类:
编程语言 时间:
2019-08-17 20:18:16
阅读次数:
95
分布式MySql 部署方案 解决方案 描述 ? 1 2 3 4 1. 启动mysql主从备份 2. 通过使用Mycat中间件做分表以及路由 3. 使用haproxy代理MyCat做负载均衡 4. keepalived保证haproxy的高可用性,解决单点故障。 ? 1 2 3 4 1. 启动mysq ...
分类:
数据库 时间:
2019-08-17 20:10:48
阅读次数:
220