2013年9月15日
摘要: 关于非阻塞算法的资料已经很多了,但真正能用它解决实际问题的人应该还比较少,我在网上也看到有些人对CAS存在误用,故写出这一个实战系列,希望能对读者运用非阻塞算法有些帮助。 阅读全文
posted @ 2013-09-15 20:27 trytocatch 阅读(1617) 评论(0) 推荐(1) 编辑
  2013年7月25日
摘要: 一个基于正则表达式的文本替换工具,允许使用替换函数,实时显示匹配结果和替换内容,非常实用。 阅读全文
posted @ 2013-07-25 05:26 trytocatch 阅读(4431) 评论(5) 推荐(0) 编辑
  2013年6月24日
摘要: Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。 Windows 下单机的TCP连接数受多个参数影响: 最大TCP连接数[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]TcpNumConnections = 0x00fffffe (Default = 16,777,214) 以上注册表信息配置单机的最大允许的TCP连接数,默认为 16M。这个数值看似很大,这个并不是限制最大连接数的唯一条件,还有其他条件会限制到TCP 连接的最大连接数。最大动态端口数TCP.. 阅读全文
posted @ 2013-06-24 23:13 trytocatch 阅读(213) 评论(0) 推荐(0) 编辑
  2013年4月30日
摘要: 有个时候,我们需要在Table中添加一列来标识某行是否被选中(不同于自带的行选择),同时又不方便去修改原来TableModel。为了解决这种问题,我编写了下面这个包装类(不知这么称呼是否恰当哈)。CheckBoxTableModelProxypackage trytocatch.swingplus.table;import java.util.BitSet;import javax.swing.event.TableModelEvent;import javax.swing.event.TableModelListener;import javax.swing.table.Abstract.. 阅读全文
posted @ 2013-04-30 18:49 trytocatch 阅读(2007) 评论(0) 推荐(0) 编辑
  2013年3月21日
摘要: 玩java多线程的,大多都知道volatile:它能保证变量的可见性,其它线程能看到其最新值,但不能用于实现线程安全的变量自增;再深入点的可能知道,它会限制指令重排序,volatile操作前的操作(包括普通变量的读写)不能重排到它之后,反之亦然。基于上面的认识,我设计了下面的测试public class TestVolatile { private volatile int n1=0;//volatile private int n2=0; public static void main(String[] a) { new TestVolatile().t... 阅读全文
posted @ 2013-03-21 23:08 trytocatch 阅读(2208) 评论(0) 推荐(1) 编辑
  2013年1月13日
摘要: java中常见的Timer有两个,一个是javax.swing.Timer,另一个是java.utl.Timer,两者的功能大同小异,最主要的差别在于swing.Timer的任务是放到EDT线程中执行的,可以很方便地进行swing的UI操作,另外swing.Timer是一个守护线程,utl.Timer则是可以设置是否为守护线程。 JVM中有这样一个规定,如果非守护线程都退出了,那么JVM会关闭,不管是否还有守护线程在运行。 swing程序的关闭机制:在swing程序中,EDT线程负责处理事件,它是一个非守护线程;另外有一个名为AWT-Shutdown的非守护线程,负责在所有窗口都关闭后... 阅读全文
posted @ 2013-01-13 12:57 trytocatch 阅读(4241) 评论(0) 推荐(2) 编辑
  2013年1月9日
摘要: 内存屏障,又称内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。本文介绍了内存屏障对多线程程序的影响。我们将研究内存屏障与JVM并发机制 的关系,如易变量(volatile)、同步(synchronized)和原子条件式(atomic conditional)。本文假定读者已经充分掌握了相关概念和Java内存模型,不讨论并发互斥、并行机制和原子性。内存屏障用来实现并发编程中称为 可见性(visibility)的同样重要的作用 阅读全文
posted @ 2013-01-09 22:08 trytocatch 阅读(524) 评论(0) 推荐(0) 编辑
  2013年1月7日
摘要: java volatile的一个验证反例 阅读全文
posted @ 2013-01-07 20:22 trytocatch 阅读(2974) 评论(4) 推荐(2) 编辑
  2012年11月30日
摘要: 关于JTextField限制输入字符长度的问题,因为没提供现成的api,所以我们得自己动手,来实现这个功能,网上也有很多这样的资料,大多是在JTextField的Document的insertString方法中动手脚,比较当前文本框的字符长度和最大长度,如果输入不涉及中文,该方法也堪称完美了。 细心的童鞋可能会发现,在swing里输入中文,有的是下方弹出一个小方框,显示当前输入的字母;有的是直接将这些字母显示在了文本输入框里,打完一个字词时,将这些字母清除掉,再将中文显示上去。这两种不同的显示方式取决于System.getProperty("java.awt.im.style&quo 阅读全文
posted @ 2012-11-30 11:31 trytocatch 阅读(9036) 评论(0) 推荐(0) 编辑
  2012年8月20日
摘要: int bold = 5;((Graphics2D)g).setStroke(new BasicStroke(bold, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); //((Graphics2D)g).setStroke(new BasicStroke(bold, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); //((Graphics2D)g).setStroke(new BasicStroke(bold)); //((Graphics2D)g).setRenderingHint(Render 阅读全文
posted @ 2012-08-20 11:36 trytocatch 阅读(3284) 评论(0) 推荐(0) 编辑