11 2015 档案

摘要:在Java中可以有很多方法来保证线程安全,比如使用同步方法、同步块,使用原子类(atomic concurrent classes),实现并发锁,使用volatile关键字,使用不变类和线程安全类。 这里是最基础的线程安全教程 实际上在volatile的使用上很容易有误解,以为volatile就可以 阅读全文
posted @ 2015-11-30 15:12 昕友软件开发 阅读(6036) 评论(1) 推荐(1) 编辑
摘要:原文: http://my.oschina.net/noahxiao/blog/101558 阅读全文
posted @ 2015-11-30 10:59 昕友软件开发 阅读(530) 评论(0) 推荐(0) 编辑
摘要:阻塞队列:线程安全 按 FIFO(先进先出)排序元素。队列的头部 是在队列中时间最长的元素。队列的尾部 是在队列中时间最短的元素。新元素插入到队列的尾部,并且队列检索操作会获得位于队列头部的元素。链接队列的吞吐量通常要高于基于数组的队列,但是在大多数并发应用程序中,其可预知的性能要低。 注意: 1、 阅读全文
posted @ 2015-11-26 16:10 昕友软件开发 阅读(22359) 评论(0) 推荐(0) 编辑
摘要:程序中涉及到对一些共享资源的读和写操作,且写操作没有读操作那么频繁。在没有写操作的时候,两个线程同时读一个资源没有任何问题,所以应该允许多个线程能在同时读取共享资源。但是如果有一个线程想去写这些共享资源,就不应该再有其它线程对该资源进行读或写(译者注:也就是说:读-读能共存,读-写不能共存,写-写不 阅读全文
posted @ 2015-11-26 10:36 昕友软件开发 阅读(793) 评论(0) 推荐(0) 编辑
摘要:因为jira的文本编辑器自动进行了2次转义,如果从API过来的文本换行需要手动处理。吐血。net里: desc = desc.Replace("\n", "\\n").Replace("\r", "\\r").Replace("\"","\\\""); java里: d... 阅读全文
posted @ 2015-11-18 15:42 昕友软件开发 阅读(707) 评论(0) 推荐(0) 编辑
摘要:为什么要使用SwingWorker 在swing开发中,如果一个应用程序,执行一些任务,需要大量的时间来完成,比如下载一个大文件或执行一个复杂的数据库查询。 我们假设这些任务是由用户使用一个按钮触发的。在单线程应用程序,用户单击按钮,进入计算的过程,然后等待任务完成之前,所有的事件都在主线程EDT线 阅读全文
posted @ 2015-11-16 14:43 昕友软件开发 阅读(627) 评论(0) 推荐(0) 编辑
摘要:一种习以为常的缓存写法: 看上去逻辑无比正确,但实际上会造成2种问题: 1、这种方法是不线程安全的。 2、产生数值写入重复,造成错误的数据。 如下图,在线程1执行计算数值的过程中,线程2也进入数据检查,将多次写入数据,程序非常危险。 演示错误代码: 1、传统的解决办法,使用重入锁 (getNumbe 阅读全文
posted @ 2015-11-16 10:27 昕友软件开发 阅读(2190) 评论(0) 推荐(0) 编辑

欢迎访问我的开源项目:xyIM企业即时通讯
点击右上角即可分享
微信分享提示