摘要: /*如果同步函数被静态修饰后,使用的锁是什么呢?通过验证,发现不在是this。因为静态方法中也不可以定义this。静态进内存是,内存中没有本类对象,但是一定有该类对应的字节码文件对象。类名.class 该对象的类型是Class静态的同步方法,使用的锁是该方法所在类的字节码文件对象。 类名.clas... 阅读全文
posted @ 2015-11-08 17:58 平常心,平常心 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章通过卖票使用同步代码块的方法解决安全问题本篇文章首先探讨如何找出这样的安全问题,并提出第二种方式(非静态函数synchronized修饰)解决安全问题/*需求: 银行有一个公共账号金库 有两个储户同时对该账户存取,每次存100,共3次目的: 该程序是否有安全问题,如果有,如何解... 阅读全文
posted @ 2015-11-08 17:53 平常心,平常心 阅读(808) 评论(1) 推荐(0) 编辑
摘要: /*多线程的安全问题: while(true) { if(tick>0) { //线程0,1,2,3在余票为1时,都停滞在这里,之后分别获得CPU执行权,打印出0,-1,-2等错票 ... 阅读全文
posted @ 2015-11-08 17:38 平常心,平常心 阅读(1409) 评论(0) 推荐(0) 编辑
摘要: 1.通过extends Thread 1 /* 2 需求:简单的卖票,多个窗口同时买票 3 (共用资源) 4 创建线程的第二种方式:实现Runnable接口 5 6 步骤: 7 1,定义类实现Runnable接口 8 2,覆盖/重写Runnable接口中的run方法 9 ... 阅读全文
posted @ 2015-11-08 10:52 平常心,平常心 阅读(7702) 评论(2) 推荐(0) 编辑