线程安全的误解: 线程安全并不是否定资源共享
来源:互联网 发布:python anaconda 编辑:程序博客网 时间:2024/05/17 06:18
- 原文:点击打开链接
- 之所以造成这个误解,大概跟线程安全的几种解决手段有关.
- 同步技术
- 多用方法内局部变量
- ThreadLocal技术(一线程,一实例变量copy)
- 线程安全的定义:
而多线程对共享资源的改变,也是理论值之一.即理论上是接受共享资源被多个线程改变的.
- 举例如下:
下面这段程序是存在线程安全问题的,但"共享售票"并不意味着线程不安全
public class MyThread implements Runnable {
}
卖票:ticket = 5
卖票:ticket = 4
卖票:ticket = 3
卖票:ticket = 2
卖票:ticket = 1
因为程序执行太快了,来不及显性产生线程安全问题,我们在run()中加一个Thread.sleep(300)方法
D:\java\source\thread\sync>java syndemo.SynDemo01
卖票:ticket = 5
卖票:ticket = 4
卖票:ticket = 3
卖票:ticket = 2
卖票:ticket = 1
卖票:ticket = 0
卖票:ticket = -1
当剩最后一张票时
上一个进程通过了(this.ticket > 0)的判断,却sleep了,没来得及把this.ticket--
而另一个进程趁机也通过了(this.ticket > 0)的判断
这样就形成了ticket=1时两个线程都通过测试,都进行了--,就出现了-1
阅读全文
0 0
- 线程安全的误解: 线程安全并不是否定资源共享
- 线程安全的误解: 线程安全并不是否定资源共享
- 线程安全的误解: 线程安全并不是否定资源共享
- iosGCD线程安全之资源共享
- DCLP不是线程安全的?
- crypt()不是线程安全的
- 加密算法不是线程安全的
- DefaultControllerFactory不是线程安全的
- ffmpeg不是线程安全的
- contentProvider不是线程安全的
- Android 的View不是线程安全的.
- 图片缩放UIGraphicsGetImageFromCurrentImageContext不是线程安全的
- 图片缩放UIGraphicsGetImageFromCurrentImageContext不是线程安全的
- STL容器不是线程安全的
- SimpleDateFormat 为什么不是线程安全的
- SimpleDateFormat不是线程安全的类
- hashSet不是线程安全的验证
- android UI操作不是线程安全的
- 输入一个链表,从尾到头打印链表每个节点的值。
- LeetCode33. Search in Rotated Sorted Array
- An Easy Physics Problem (hdu5572) 2015ACM/ICPC亚洲区上海站
- 单例模式
- 欢迎使用CSDN-markdown编辑器
- 线程安全的误解: 线程安全并不是否定资源共享
- 算法--二叉树
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 对MFC中CDocument::UpdateAllViews的理解
- python中的random模块
- 安卓系统为24时,如何实现网络状态的监测
- linux centos 6.8扩容vg lv
- 【Vue.js】- Vue.js常用指令的使用
- Linux内核:通过wait_event和wake_up内在机制分析等待队列