人员、任务、进度、工时、周期、依赖关系 一目了然。无论项目大小、简单复杂都能轻松管理
作者:EnjoyMoving,转自:https://zhuanlan.zhihu.com/p/29866981
锁的内存语义
synchronized的底层是使用操作系统的mutex lock实现的。
内存可见性: 同步块的可见性是由“如果对一个变量执行lock操作,将会清空工作内存中此变量的值,在执行引擎使用这个变量前需要重新执行load或assign操作初始化变量的值”、“对一个变量执行unlock操作之前,必须先把此变量同步回主内存中(执行store和wri
自旋锁
如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,只需让线程执行一个忙循环(自旋),等持有锁的线程释放锁后即可立即获取锁,这样就避免用户线程和内核的切换的消耗。 自旋等待不能代替阻塞,自旋等待本身虽然避免了线程切换的开销,但是要占用处理器时间,因此如果锁被占用时间很短,自旋等待效果就会非常好,但如果锁被占用的时间很长,那么自旋的线程只会白白消耗处理器资源,不会有任何有用的工作,反而会带来性能上的浪费
作者:孤独烟,转自:http://rjzheng.cnblogs.com/
饿汉式
这种其实大家都懂,不多说,上代码。
package singleton;
public class Singleton1 {
private static Singleton1 instance = new Singleton1();
private Singleton1 (){}
public static Singleton1 getInstance() {
创建资源对象,提供保存和取出方法(使用synchronized代码块实现)
/**
* Created by shaoqinghua on 2018/5/3.
* 定义一个负责保存和取出的资源类
*/
public class Resource {
/**
* 定义成员变量,充当保存和取出的容器
*/
private Object[] objs = new Object[1];
/**
* 定义一个同步的锁对象
1 系统环境
Ubuntu 16.04 LTS
hbase-1.2.6-bin.tar.gz(http://hbase.apache.org/)
hbase-create.hbase(https://github.com/naver/pinpoint/tree/master/hbase/scripts)
pinpoint-collector-1.7.2.war(https://github.com/naver/pinpoint/releases/tag/1
JDK7及以前,HashMap底层基于数组(Entry数组)和链表实现,计算hash时发生hash冲突将该节点以链表形式存储,当hash冲突过多会导致单个链表过长,查找节点时将耗费O(n)的查找时间
JDK8:底层基于数组(Node数组)、链表、红黑树实现,当同一hash值的节点数超过阈值(8),链表结构将会被转换为红黑树进行数据存储
底层以Node数组存储,对应TreeNode红黑树的实现
transient Node<K,V>[] table;
当ha
FROM 指定创建镜像的基础镜像 任何Dockerfile中的第一条非注释指令必须为FROM指令,可以有多个FROM指令创建多个镜像(每个镜像一次)
MAINTAINER
1 系统环境
Ubuntu 16.04 LTS
elasticsearch-6.1.2.tar.gz
logstash-6.1.2.tar.gz
kibana-6.1.2-linux-x86_64.tar.gz
filebeat-6.1.2-linux-x86_64.tar.gz
2 ELK介绍
Elasticsearch:是一个分布式、可扩展、实时的搜索与数据分析引擎,具有高可伸缩、高可靠等特点。基于全文搜索引擎库Apache Lucene
系统环境
使用远程服务器上搭建的kafka服务
Ubuntu 16.04 LTS
kafka_2.12-0.11.0.0.tgz
zookeeper-3.5.2-alpha.tar.gz
集成过程
1.创建spring boot工程,添加相关依赖:
<?xml version=1.0 encoding=UTF-8?>
<project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:x
系统环境
Ubuntu 16.04 LTS
kafka_2.12-0.11.0.0.tgz
zookeeper-3.5.2-alpha.tar.gz
安装测试
1. 下载tar包并解压
tar -zxvf kafka_2.12-0.11.0.0.tgz
2. 修改Kafka服务端配置文件server.properties(最重要配置:broker.id、log.dirs、zookeeper.connect)
# 设置节点id
broker.id