故事通常是这样开始的: 从前,有一个程序猿,他语重心长地对孙子说:“孩子,要是你以后写servlet,最好不要重写service方法啊” 孙子大为不解,程序猿又说:“听爷爷的,准没错,爷爷的爷爷就是这么说的……” ——为什么不应该重写service方法呢? 如果你也曾思考过这个问题,但暂时无解,这篇 ...
分类:
其他好文 时间:
2019-01-16 13:07:05
阅读次数:
200
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝又是执行最基础工作的劳动人民——拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责 ...
分类:
编程语言 时间:
2019-01-16 00:16:27
阅读次数:
219
Executors为我们提供了构造线程池的便捷方法,对于服务器程序我们应该杜绝使用这些便捷方法,而是直接使用线程池ThreadPoolExecutor的构造方法,避免×××队列可能导致的OOM以及线程个数限制不当导致的线程数耗尽等问题。ExecutorCompletionService提供了等待所有任务执行结束的有效方式,如果要设置等待的超时时间,则可以通过CountDownLatch完成。
分类:
编程语言 时间:
2019-01-11 14:16:40
阅读次数:
204
一、为什么使用线程池 使用new Thread执行多个线程有如下一些问题: 每次new Thread新建对象性能差。线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。缺乏更多功能,如定时执行、定期执行、线程中断。相比new Thread,Java提供的四种线 ...
分类:
编程语言 时间:
2019-01-11 11:39:18
阅读次数:
174
这里仅针对docker本身,不涉及任何编排工具compose或者k8s等。 按照惯例,官文撸起来。 重要的部分是一些选项,用来限制资源大小。 Memory 多数选项值都是正整数,单位是b, k, m, g,分别表示 bytes, kilobytes, megabytes, 和 gigabytes。 ...
分类:
其他好文 时间:
2019-01-07 01:36:57
阅读次数:
393
原文:redis 系列15 数据对象的(类型检查,内存回收,对象共享)和数据库切换一. 概述 对于前面的五章中,已清楚了数据对象的类型以及命令实现,其实还有一种数据对象为HyperLogLog,以后需要用到再了解。下面再了解类型检查,内存回收,对象共享,对象的空转时长。 1.1 类型检查与命令多态 ... ...
分类:
数据库 时间:
2019-01-06 23:03:50
阅读次数:
265
程序计数器 1、 线程所执行的字节码的行号指示器; 2、JVM的多线程是通过线程轮流切换并分配处理器执行时间的方式; 3、 每条线程都需要有一个独立的程序计数器,所以是线程私有的内存区域; 4、 执行Java方法,记录的是正在执行的虚拟机字节码指令的地址; 5、 执行Native方法,计数器值为空; ...
分类:
其他好文 时间:
2019-01-06 18:10:46
阅读次数:
181
题目描述 A and B are preparing themselves for programming contests. The University where A and B study is a set of rooms connected by corridors. Overall, ...
分类:
其他好文 时间:
2019-01-05 22:41:11
阅读次数:
147
Prima di tutto, sono di buone dimensioni, non i 'mini' puntatori laser che altri stanno vendendo. È fantastico come un puntatore laser 1000mW e la bas ...
分类:
其他好文 时间:
2019-01-05 19:55:58
阅读次数:
151