需求:模拟三个窗口同时买票。 问题1:static 修饰num,只创建一份在内存中,要不就会创建3份。 问题2:线程安全问题。(代码重1的红色字体) 出现的原因:存在两个或两个以上的线程对象,而且线程间共享着一个资源, 有多个语句操作了共享资源。 解决方式:加个锁,synchronized,把锁放到 ...
分类:
编程语言 时间:
2016-08-17 01:39:15
阅读次数:
240
1、JMM:Java Memory Model(Java内存模型) 关于synchronized的两条规定: 1、线程解锁前,必须把共享变量的最新值刷新到主内存中 2、线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时需要从主内存中重新读取最新的值(注意:加锁和解锁需要是同一把锁) 注:线 ...
分类:
编程语言 时间:
2016-08-17 01:36:42
阅读次数:
182
课程回顾: Servlet:java语言开发的运行在服务器上的开发步骤:1、创建Servlet类2、重写doGet或doPost方法3、运行在服务器 生命周期:1、初始化2、服务3、销毁 URL:统一资源定位符,网址openConnection 今日内容:Http协议:超文本传输协议常用方式:1、H ...
分类:
编程语言 时间:
2016-08-17 00:00:07
阅读次数:
413
通常,程序中的对象在多线程下,数据都是竞争共享的。但是,有一个类例外,他生成的实例是线程私有的,ThreadLocal。ThreadLocal生成的对象,线程私有,这是怎么做到的呢? ...
分类:
其他好文 时间:
2016-08-16 23:32:38
阅读次数:
131
1、finally的用法:publicstaticintgetA(){try{Stringa="123";s.equals("123");return3;}catch(Exceptione){return4;}finally{return5;//无论异常有没有,finally一定要执行}}publicstaticvoidmain(Stringargs[]){inta=getA();sysout(a);//a=5}2、mysql的乱码问题相比gbk,utf-..
分类:
其他好文 时间:
2016-08-16 22:09:56
阅读次数:
161
前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现。与synchronized不同的是,Lock完全用Java写成,在java这个层面是无关JVM实现的。 在 java.util.concurrent.lock ...
分类:
编程语言 时间:
2016-08-16 19:54:23
阅读次数:
216
Active Object模式的评价与实现考量 Active Object模式通过将方法的调用与执行分离,实现了异步编程。有利于提高并发性,从而提高系统的吞吐率。 Active Object模式还有个好处是它可以将任务(MethodRequest)的提交(调用异步方法)和任务的执行策略(Execut ...
分类:
编程语言 时间:
2016-08-16 14:36:47
阅读次数:
226
CrawlerMain: CrawlerThreadPool: CrawlerCommand: Observer: ...
分类:
编程语言 时间:
2016-08-16 09:18:40
阅读次数:
215
判断线程结束和让线程结束 暂停线程和恢复线程 线程类 ...
分类:
编程语言 时间:
2016-08-15 21:58:31
阅读次数:
162