`
冲杯茶喝
  • 浏览: 29486 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
Java存储模型有一个happens-before原则,就是如果动作B要看到动作A的执行结果(无论A/B是否在同一个线程里面执行),那么A/B就需要满足happens-before关系。 在介绍happens-before法则之前介绍一个概念:JMM动作(Java Memeory Model Action),Java存储模型动作。一个动作(Action)包括:变量的读写、监视器加锁和释放锁、线程的start()和join()。后面还会提到锁的的。 happens-before完整规则: (1)同一个线程中的每个Action都happens-before于出现在其后的任何一个Action ...
这两天在写原始类型(Primitive)的HashMap,用于提高HashMap的效率。又温故了下HashMap的源码。   想起之前有趣的代码,所以借此拿来跟大家分享下。   代码如下:   public static void main(String[] args) { Map m = new HashMap(); Object o1 = new Integer(1); Object o2 = new Long(1); m.put(o1, 1); m.put(o2, 2); ...
问题: 我想在顶层目录下编写一个脚本来调用自录下的clean.sh文件,该如何实现?   第一种情况: 假设目录结构为: fme/      |__clean.sh       |__dc250/clean.sh      |__dc300/clean.sh      |__dc350/clean.sh 现在我在fme结构下编写一个clean.sh文件调用各个子目录下的clean.sh文件。 实现方法如下:  #!/bin/bash  for dir in `ls .`
hi,all:        最近抽时间把JVM运行过程中产生的一些线程进行了整理,主要是围绕着我们系统jstack生成的文件为参照依据。  前段时间因为系统代码问题,造成性能到了天花板,于是就dump了一份stack出来进行分析。  看stack其实也需要一定的经验,毕竟它里面很多线程不可能都是有问题,所以,需要对他们有一定认识。  现在市面上很少有人对这一块做整理,所以,导致很多新人在拿到一个stack文件之后,也是一头雾水。 下面我把这次整理的一些个人认为比较重要的线程列出来,供大家参考。 如果发现有什么写得不对或者可以补充的地方,也请朋友们抱着乐于分享的态度灌灌水。  ...
前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现。本文做个总结,主要分享如下内容: 【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】好了,一个一个来。一、 Pipeline官方的 ...
1. 线程组,在我们测试方案里面,每个线程模拟一个用户,执行用户的登录、等等等一系列的操作。由于我们的项目是长连接的,如何能实现多个sample公用一个长连接客户端,考虑了很久,最后实现方法如下:  1 package tea.client.network; 2 /** 3  * @author Teaey 4  * @creation 2012-8-25 5  */ 6 public class NetworkClientHolder 7 { 8     /** 9      * 这里使用ThradLocal存储BaseClient10      * 方便一轮测试的每个sample ...
如果是刚刚接触logback,建议先下载本文最后的《Logback手册.pdf》官方手册阅读。 1、 如何替换现有的log4j
这两种模式在Java IO包下应用很多 典型的包装者模式:InputStream ---> FilterInputStream ---> InputStream 典型的适配器模式:Reader ---> InputStreamReader ---> InputStream 一、定义 先看下两者的定义 装饰者:不改变接口,加入新的责任 适配器:讲一个接口改为另一个接口 不同点:
原文地址:点击打开链接 ,翻译有出入之处,请以原文为准 本文中,我们讨论一个问题:如何计算(或者说,估算)一个Java对象占用的内存数量? 通常,我们谈论的堆内存使用的前提是以“一般情况”为背景的。不包括下面两种情形:   某些情况下,JVM根本就没有把Object放入堆中。例如:原则上讲,一个小的thread-local对象存在于栈中,而不是在堆中。 被Object占用内存的大小依赖于Object的当前状态。例如:Object的同步锁是否生效,或者,Object是否正在被回收。 我们先来看看在堆中单个的Object长什么样子  
Global site tag (gtag.js) - Google Analytics