继续以卖票为例
一、线程安全问题的解决
同步的第一种表现形式:同步代码块
思路:
将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程是不允许参与运算的,必须要当期线程把代码执行完毕后,其他线程才可以参与运算
在java中用同步代码块解决这个问题
同步代码块格式:
synchronized(对象)
{
需要被同步的代码部分
}
clas...
分类:
编程语言 时间:
2014-10-10 01:17:43
阅读次数:
457
这是由于Servlet的工作原理产生的。我们先来简单回顾一下Servlet的生命周期“初始化->init->service->destroy->卸载”。
这里大家都知道,我们在web.xml里面定义一个servlet的时候,我们可以给他们设置一个“load-on-startup” 的值,如果 Servlet 的 load-on-startup 配置项大于 0,那么在 Context 容器启动...
分类:
编程语言 时间:
2014-10-06 21:19:40
阅读次数:
226
一、问题的提出以买票系统为例: 1 class Ticket implements Runnable 2 { 3 public int sum=10; 4 public void run() 5 { 6 while(true) 7 { 8 ...
分类:
编程语言 时间:
2014-10-02 01:57:11
阅读次数:
331
这是由于Servlet的工作原理产生的。我们先来简单回顾一下Servlet的生命周期“初始化->init->service->destroy->卸载”。这里大家都知道,我们在web.xml里面定义一个servlet的时候,我们可以给他们设置一个“load-on-startup” 的值,如果 Serv...
分类:
编程语言 时间:
2014-09-25 00:50:17
阅读次数:
321
本文演示,Tread多线程安全问题,以及一种解决多线程安全方式。
1)一个线程不安全的Demo
2)线程同步
一、小Demo演示引出线程安全问题:
二、线程同步
问题:对于上面的问题,我们是不是可以采取一个这样的措施?当线程1执行run代码段的时候,我们不让其他的线程来执行,直到线程1执行完,其他的线程才可以进入。
解决方案:好在Java里面本来就有这样的函数,将代码段包裹起来,就可以达到上面问题描述的效果。函数名:synchronized,需要一个参数,随便传个对象就ok了。...
分类:
编程语言 时间:
2014-09-17 23:22:52
阅读次数:
354
昨天晚上在写一个Android的计时器,开始认为很容易,用Java一般写法,结果发现计时器根本不能运行,但却不报任何错误,当时就呆在那了,不知道该怎么办了,后来在网上查了一下,Android考虑到线程安全问题,不允...
分类:
移动开发 时间:
2014-09-15 19:57:29
阅读次数:
182
SimpleDateFormat 是 Java 中一个常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题.因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方...
分类:
编程语言 时间:
2014-09-15 15:33:59
阅读次数:
194
一、什么是原子性原子性是世界上最小单位,具有不可分割性。比如a=0;(a非long和double类型)这个操作是不可分割的,那么我们说这个操作是原子操作。再比如:a++;这个操作实际上是a=a+1;是可分割的,所以他不是一个原子操作。二、原子操作的作用非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们就称它具有原子性。...
分类:
移动开发 时间:
2014-09-15 01:08:18
阅读次数:
336
ThreadLocal是解决线程安全问题一个很好的思路,它通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。在很多情况下,ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单,更方便,且结果程序拥有更高的并发性。
对于多线程资源共享的问题,同步机制采用了“以时间换空间”的方式,而ThreadLocal采用了“以空间换时间”的方式。前者仅提...
分类:
编程语言 时间:
2014-09-14 12:53:47
阅读次数:
207
小结ThreadLocal是解决线程安全问题一个很好的思路,它通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。在很多情况下,ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单,更方便,且结果程序拥有更高的并发性。http://sunnylocus...
分类:
其他好文 时间:
2014-09-07 03:16:54
阅读次数:
159