摘要: 所谓死锁可以这么理解,就是同步的当中,出现了竞争资源的情况,双方或者多方的僵持不下所以造成了死循环。但是死锁也有“和谐”的时候,所以有的时候虽然写了死锁的代码确可以偶尔通过。死锁问题的由来是: 同步代码块中有同步函数; 同步函数中有同步代码块。或者说就是同步中还有同步也就是用了两个嵌套的synchr... 阅读全文
posted @ 2015-02-10 22:15 kevinfuture 阅读(98) 评论(0) 推荐(0) 编辑
摘要: /**如果同步函数被静态修饰,那么他的锁就是该方法所在类的字节码文件对象 类名.class静态进内存时,内存中没有本类对象,但是一定有该类对应的字节码文件对象。该对象就是:类名.class 该对象的类型是class**/class Ticket implements Runnable{ priva... 阅读全文
posted @ 2015-02-10 14:54 kevinfuture 阅读(271) 评论(2) 推荐(0) 编辑
摘要: class Ticket implements Runnable{ private int tick = 100; Object obj = new Object(); boolean flag = true; public void run() { if(flag) { while(tru... 阅读全文
posted @ 2015-02-10 14:44 kevinfuture 阅读(486) 评论(1) 推荐(0) 编辑
摘要: /**同步有两种方式:一、同步代码块;二、同步函数使用synchronized注意只要对需要同步的代码进行同步,多余的不用如何找问题: 1、明确哪些代码是多线程运行代码 2、明确共享数据 3、明确多线程运行代码中哪些语句是操作共享数据的。**/class Bank{ private int sum;... 阅读全文
posted @ 2015-02-10 13:29 kevinfuture 阅读(131) 评论(0) 推荐(0) 编辑