单一职责模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 典型模式:装饰模式(Decorator)、桥接模式(Bridge)。 一、装饰模式 1.动机 在某些情况下我们可能会“过度地使用继承来扩展对象的 ...
分类:
编程语言 时间:
2019-11-24 15:50:25
阅读次数:
80
barrier.go package barrier import ( "fmt" "io/ioutil" "net/http" "time" ) var timeoutMillseconds int = 5000 type barrierResp struct { Err error Resp s... ...
分类:
编程语言 时间:
2019-11-24 11:58:22
阅读次数:
72
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/7518259.html 一、什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各 ...
分类:
编程语言 时间:
2019-11-23 23:50:21
阅读次数:
112
重启redis所在的centos之后,启动 redis-server,使用redis-cli 连上去,执行 dbsize时报错: 错误的字面含义是:redis正在重新从磁盘加载数据到内存中,我们看到 内存 从 1.83G增加到了3.00G, 最后增加到了7.87G,在执行 dbsize就不报错了。恢 ...
分类:
其他好文 时间:
2019-11-23 23:47:48
阅读次数:
90
C. Swap Letters time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Monocarp has got two str ...
分类:
其他好文 时间:
2019-11-23 21:53:27
阅读次数:
142
之所以想谈谈这个是因为,最近在上网搜索的时候无意间发现,有人误将数据结构中的堆(就是那个“大顶堆”“小顶堆”的堆)和内存结构中的“堆”弄混了。 ...
分类:
其他好文 时间:
2019-11-23 09:19:54
阅读次数:
67
先介绍下CountDownLatch和CyclicBarrier; CountDownLatch:new CountDownLatch(n),初始化时会赋值,并且不可以重新赋值。 countDown(),值减1,操作,当值为0时,会跳过所有的阻塞方法await(); await(),阻塞方法,一直阻 ...
分类:
编程语言 时间:
2019-11-22 19:02:30
阅读次数:
90
Linux top命令的用法详细详解 首先介绍top中一些字段的含义: VIRT:virtual memory usage 虚拟内存1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量 RES:r ...
分类:
系统相关 时间:
2019-11-22 13:29:05
阅读次数:
72
1、Flume简介 ? (1) Flume提供一个分布式的,可靠的,对大数据量的日志进行高效收集、聚集、移动的服务,Flume只能在Unix环境下运行。 ? (2) Flume基于流式架构,容错性强,也很灵活简单。 ? (3) Flume、Kafka用来实时进行数据收集,Spark、Flink用来实 ...
分类:
Web程序 时间:
2019-11-22 12:11:59
阅读次数:
201
总线锁、缓存锁、MESI缓存一致性协议、CPU 层面的内存屏障 1.JMM定义: Java Memory Model(java内存模型)是一系列的Java虚拟机平台对开发者提供的多线程环境下的内存可见性、是否可以重排序等问题的无关具体平台的统一的保证。(可能在术语上与Java运行时内存分布有歧义,后 ...
分类:
编程语言 时间:
2019-11-22 00:58:53
阅读次数:
76