需求:模拟三个窗口同时买票。 问题1:static 修饰num,只创建一份在内存中,要不就会创建3份。 问题2:线程安全问题。(代码重1的红色字体) 出现的原因:存在两个或两个以上的线程对象,而且线程间共享着一个资源, 有多个语句操作了共享资源。 解决方式:加个锁,synchronized,把锁放到 ...
分类:
编程语言 时间:
2016-08-17 01:39:15
阅读次数:
240
1.创建线程的两种方式。 (1)继承Thread(该类就定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法也就是说Thread类中的run方法,用于存储线程要运行的代码。) (2)实现Runnable(Runable中只定义了一个抽象方法,public void run();) 步骤 ...
分类:
编程语言 时间:
2016-08-06 17:32:38
阅读次数:
236
什么是乐观锁和悲观锁 1) 乐观锁:就像它的名字一样,对于并发间操作产生的线程安全问题持乐观状态,乐观锁认为竞争不总是会发生,因为他不需要持有锁,将比较-替换这两个动作作为一个原子操作尝试去修改内存中的变量,如果失败则表示发生冲突,那就应该有相应的充实逻辑。(svn操作) 2) 悲观锁:还是像他的名 ...
分类:
其他好文 时间:
2016-08-04 22:51:12
阅读次数:
144
1、Map体系参考:http://java.chinaitlab.com/line/914247.htmlHashtable是JDK
5之前Map唯一线程安全的内置实现(Collections.synchronizedMap不算)。Hashtable继承的是
Dictionary(Hashtable是其唯一公开的子类),并不继承AbstractMap或者HashMap.尽管Hashtable和
Hash..
分类:
编程语言 时间:
2016-08-04 11:52:59
阅读次数:
536
虽然多线程编程极大地提高了效率,但是也会带来一定的隐患。比如说两个线程同时往一个数据库表中插入不重复的数据,就可能会导致数据库中插入了相同的数据。今天我们就来一起讨论下线程安全问题,以及Java中提供了什么机制来解决线程安全问题。 一.什么时候会出现线程安全问题? 在单线程中不会出现线程安全问题,而 ...
分类:
编程语言 时间:
2016-07-31 22:11:48
阅读次数:
312
前言:前面说了很多关于Servlet的一些基础知识,这一篇主要说一下关于Servlet的线程安全问题。 1:多线程的Servlet模型 要想弄清Servlet线程安全我们必须先要明白Servlet实例是如何创建,它的模式是什么样的。 在默认的情况下Servlet容器对声明的Servlet,只创建一个 ...
分类:
编程语言 时间:
2016-07-24 22:37:38
阅读次数:
197
java如何解决线程安全问题,一共有两种方式 1、同步代码块 synchronized (同步监视器) { //需要同步的代码(操作共享数据的代码) } 同步监视器:由一个对象来充当,哪个线程获取这个监视器,就可以执行括号里的代码。一般叫加锁 同步锁的作用,保证任何时候之后一个线程能够执行同步锁里的 ...
分类:
编程语言 时间:
2016-07-21 12:17:56
阅读次数:
130
线程安全这个词对我来说已经不是很陌生的了,但是遇到一个叫做可重入函数的词,它给我的感觉和线程安全是这么的相近,但既然拿出来了,肯定是有区别的,下面就说说他们之间的区别和联系。 要先解释这两个词语才行。 线程安全:似乎是在牛客网刷题的时候看到一个正确的选项说的是,线程安全问题都是由全局变量及静态变量引 ...
分类:
编程语言 时间:
2016-07-13 11:43:54
阅读次数:
199
上两篇文章讲了HashMap和HashMap在多线程下引发的问题,说明了,HashMap是一种非常常见、非常有用的集合,并且在多线程情况下使用不当会有线程安全问题。 大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并 ...
分类:
其他好文 时间:
2016-07-13 00:59:50
阅读次数:
222
饿汉式 特点:直接创建静态对象 懒汉式 特点:延迟加载,可能存在线程安全问题 措施:使用同步,为提高判断锁状态的效率,可以使用双重判断 ...
分类:
其他好文 时间:
2016-07-12 13:55:17
阅读次数:
146