Java多线程之线程的同步
实际开发中我们也经常提到说线程安全问题,那么什么是线程安全问题呢?
线程不安全就是说在多线程编程中出现了错误情况,由于系统的线程调度具有一定的随机性,当使用多个线程来访问同一个数据时,非常容易出现线程安全问题。具体原因如下:
1,多个线程同时访问一个数据资源(该资源称为临界资源),形成数据发生不一致和不完整。
2,数据的不一致往往是因为一个线...
分类:
编程语言 时间:
2015-02-04 16:41:20
阅读次数:
241
集合:可以存储不同类型的多个对象,随着存储对象的个数的增加而自动扩大容量
体系结构:
Collection
|----List:存入的对象是有序的,且可以重复
ArrayList:底层使用的数据结构是数组,线程不安全的,查找速度快,增删速度慢
Vector:底层使用的数据结构是数组,线程安全的,查找速度快,增删速度慢...
分类:
编程语言 时间:
2015-01-29 09:32:34
阅读次数:
258
关于多线程操作,我相信大家都不陌生,如何开启一个线程之类我想就不用太详细的去描述,今天我们就来讲讲线程同步的安全的问题。
对于线程同步安全问题,一般是一个多线程对同一个资源同时操作的时候,会出现资源同时操作造成线程不安全的问题。那么这个时候我们需要去对公共资源进行同步保护。这个时候有三种情况
1、同步代码块,这个同步的锁是任意一个对象;
2、方法同步,这个同步的锁就是该方法所在的类;
3、...
分类:
编程语言 时间:
2015-01-27 09:28:53
阅读次数:
273
首先要知道什么是线程安全? 当多个线程访问某个类时,不管运行环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么久称这个类是线程安全的。典型线程不安全的列子: 1 import java.util.*; 4 5 class .....
分类:
编程语言 时间:
2015-01-20 23:50:02
阅读次数:
212
常见的ArrayList LinkedList HashMap TreeMap LinkedHashMap HashSet TreeSet LinkedHashSet 都是线程不安全的。如果要使用线程安全的,可以使用:1.List ----- Vector 、ConcurrentLinkedQueu...
分类:
编程语言 时间:
2015-01-20 15:07:04
阅读次数:
179
背景:当循环体在循环的时候有需求要修改自己。或者在多线程下,循环静态变量的时候,别人很容易修改了循环体内的数据。但是这就会报错的
准备:for;foeach;多线程。
解决方案:For循环是线程安全的,foreach是线程不安全的。说起开好像很高大上哈。意思是在循环内如,如果调用他们自己的循环体。前者是可以的,但是后者是不行的。
再者如果你循环的是字典。字典是键值对的形式,所以采用线程安全的...
分类:
编程语言 时间:
2015-01-13 14:30:16
阅读次数:
223
方式一通过StringBuider 来生成xml文件(他线程不安全,不需要进行通过检测加锁,效率高,单线程建议使用。StrigBuffer线程 安全,效率较之低,多线程环境使用)。
如下所示:
方式二,通过XML的序列器来实现生成XML文件,代码中的null是命名空间。tag是节点,doucument是文件头声明。示例代码如下:...
分类:
移动开发 时间:
2015-01-11 17:51:17
阅读次数:
184
摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。 关键字:Servlet 线程安全 同步 Java内存模型 实例变量 Servlet/JSP技术.....
分类:
编程语言 时间:
2015-01-05 20:21:45
阅读次数:
218
最近做的项目中遇到一个问题:明明用了ConcurrentHashMap,可是始终线程不安全
除去项目中的业务逻辑,简化后的代码如下:
public class Test40 {
public static void main(String[] args) throws InterruptedException {
for (int i = 0; i < 10; i...
分类:
编程语言 时间:
2015-01-04 21:27:56
阅读次数:
241
转载http://blog.csdn.net/dxpqxb/article/details/7987764我们经常看见一句话:Android主线程是线程不安全的。这句话的意思是:更新UI只能是主线程的工作,子线程更新UI是线程不安全的,所以android里非主线程操作主UI就会报错。为什么呢?因为子...
分类:
移动开发 时间:
2014-12-27 17:22:53
阅读次数:
232