日志的使用方式: LOG_INFO << "AAA"; LOG_INFO是一个宏,展开后为: muduo::Logger(__FILE__, __LINE__).stream() << "AAA"; 构造了一个匿名对象Logger,在这个对象构造的时候其实已经写入了文件名和行号。 匿名对象调用.st ...
分类:
其他好文 时间:
2020-03-03 01:16:57
阅读次数:
85
做过相关工程很久了,没有记录,发现有些忘记了,又复习了一遍,这里记录下: 我这里的代码做过删减,直接运行不了,重点在于说明thread创建框架、锁的使用、条件等待以及双缓冲的使用! #include <stdio.h> #include <iostream> //thread #include "t ...
分类:
编程语言 时间:
2020-03-02 20:53:04
阅读次数:
63
任意一个Java对象,都拥有一组监视器方法(定义在Object类中),主要包括wait,notify,notifyAll方法,这些方法与synchornized关键字相配合,可以实现等待/通知模式。 Condition接口也提供了类似的Object的监视器方法,与Lock配合可以实现等待/通知模式。 ...
分类:
其他好文 时间:
2020-03-01 12:30:15
阅读次数:
68
Java 线程之间的交互 wait和notify 线程之间有 交互通知 的需求,考虑如下情况: 有两个线程,处理同一个英雄。 一个加血,一个减血。 减血的线程,发现血量=1,就停止减血,直到加血的线程为英雄加了血,才可以继续减血 步骤 1 : 不好的解决方式 故意设计减血线程频率更高,盖伦的血量迟早 ...
分类:
编程语言 时间:
2020-03-01 10:59:04
阅读次数:
69
业务场景 小公司业务代码存于一个服务器上,而这个服务器有的时候回宕机,导致业务停顿,造成影响。这个时候 就需要做高可用 两个ngix+两个tomcat+两个mysql实现高可用,避免单点问题。中间使用keepalived监听。下面先从简单的mysql主从搞起。下面按照老方式,what->why->h ...
分类:
数据库 时间:
2020-02-29 16:20:26
阅读次数:
67
线程状态 Runnable Blocked sleep、join、wait、synchronized 四个关键字都会使线程进入Blocked状态 Running Dead synchronized关键字 Object类有两个监视器相关的方法wait、notify synchronized和wait、 ...
分类:
编程语言 时间:
2020-02-29 00:58:33
阅读次数:
93
wait():将线程进入阻塞状态,需要等待唤醒,此时释放cpu资源 notify():程序一旦执行到此方法,就会唤醒一个被wait的线程 notifyAll():程序一旦执行到此方法,就会唤醒被wait的线程 注意:这三个方法只能用在同步方法或同步代码块中 这三个方法的调用者必须是同步监视器,否则会 ...
分类:
编程语言 时间:
2020-02-28 19:08:24
阅读次数:
67
我们在67节和68节实现了线程的一些基本协作机制,那是利用基本的wait/notify实现的,我们提到,Java并发包中有一些专门的同步工具类,本节,我们就来探讨它们。 我们要探讨的工具类包括: 读写锁ReentrantReadWriteLock 信号量Semaphore 倒计时门栓CountDow ...
分类:
编程语言 时间:
2020-02-28 01:39:36
阅读次数:
78
外接mariadb集群 实现负载均衡 实验环境 10.0.1.27 galera1 10.0.1.6 galera2 10.0.1.23 galera3 10.0.1.17 harpoxy1 haproxy+keepalived 10.0.1.29 haproxy2 haproxy+keepaliv ...
分类:
系统相关 时间:
2020-02-27 19:13:36
阅读次数:
115
keepalived+haproxy 安装配置 1.安装配置keepalived 修改配置文件/etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id Node_A (另一台 ...
分类:
其他好文 时间:
2020-02-27 18:52:43
阅读次数:
51