随笔分类 -  Java / 并发和锁

摘要:SimpleDateFormat定义 官网同步建议 为什么线程不安全 上图中,SimpleDateFormat类中,有个对象calendar calendar DateFormat 使用 calendar 来生成实现日期和时间格式化所需的时间字段值。 当SimpleDateFormat用static 阅读全文
posted @ 2018-01-30 15:08 艺言弈行 阅读(1889) 评论(0) 推荐(0)
摘要:Volatile定义 为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明成volatile,java线程内存模型确保所有线程看到这个变量的值是一致的。 特点 volatile修饰的共享变量,能 阅读全文
posted @ 2018-01-21 22:29 艺言弈行 阅读(386) 评论(0) 推荐(1)
摘要:多线程的同步依靠的是对象锁机制,synchronized关键字的背后就是利用了封锁来实现对共享资源的互斥访问。参考自http://www.cnblogs.com/phinecos/archive/2010/03/13/1684877.html 实例说明:1.貌似同步,实际不同步的情况 package 阅读全文
posted @ 2016-03-04 15:39 艺言弈行 阅读(673) 评论(0) 推荐(0)
摘要:还有一种方式,在t3开始前join t2,在t2开始前join t1 阅读全文
posted @ 2016-03-01 16:58 艺言弈行 阅读(8824) 评论(0) 推荐(2)
摘要:使用阻塞队列代码要简单得多,不需要再单独考虑同步和线程间通信的问题 在并发编程中,一般推荐使用阻塞队列 public class BolckQuene_Pro_Con { private int queueSize = 10;//队列允许存放的最大数 private ArrayBlockingQue 阅读全文
posted @ 2016-03-01 16:56 艺言弈行 阅读(395) 评论(0) 推荐(0)
摘要:非阻塞队列,需要考虑到: 1.并发中的同步 2.线程间通信 public class Quene_Pro_Con { //定义队列大小 private static int size = 10; //非阻塞队列 private static PriorityQueue<Integer> quene 阅读全文
posted @ 2016-03-01 16:55 艺言弈行 阅读(702) 评论(0) 推荐(0)