`
dapp66
  • 浏览: 24653 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Java线程安全与同步

阅读更多

接触Java的集合框架的时候,总是免不了听到线程安全、同步这两个概念,以前也没有仔细去了解过是什么意思,刚才了解了一下,感觉就是一个意思,线程安全依靠的就是同步机制。

线程安全就是说多线程访问同一代码,不会产生不确定的结果。编写线程安全的代码是低依靠线程同步。

 

首先来看看线程安全的实现原理:

jvm有一个main memory,而每个线程有自己的working  memory,一个线程对一个变量进行操作时,都要在自己的working   memory里面建立一个copy,操作完之后再写入main  memory。多个线程同时操作同一个变量,就可能会出现不可预知的结果。用synchronized的关键是建立一个镜像,这个镜像可以是要修改的变量也可以其他你认为合适的对象比如方法和类,然后通过给这个镜像加锁来实现线程安全,每个线程在获得这个锁之后,要执行完才会释放它得到的锁。这样就实现了所谓的线程安全。

 

在JDK的集合框架中,有一些是线程安全的,比如:Hashtable、Vector等,这些接口由于本身的代码中就实现了同步,所以效率比较低,已经被取代,实际中也使用的比较少。

1
3
分享到:
评论
6 楼 _Yggd 2012-12-11  
是不是在java web中就用hashtable.Vector就比较好?
5 楼 hejianmingwshjmcj 2012-09-04  
ConcurrentHashMap,没有用过,用得比较多得还是hashmap
4 楼 java_user 2012-09-03  
用Collections包装一下就好了
3 楼 502220545 2012-09-03  
lovexp2010 写道
引用

在JDK的集合框架中,有一些是线程安全的,比如:Hashtable、Vector等,这些接口由于本身的代码中就实现了同步,所以效率比较低,已经被取代,实际中也使用的比较少。


请问被什么取代?实际中使用比较多的是什么?求科普~~



用ConcurrentHashMap 取代 HashTable

看看jdk 5 的新特性 最牛的就是 多线程 
2 楼 随心追求 2012-09-03  
使用比较多的是 ArrayList HashMap 等。但不是所谓的取代。这些是非线程安全的运行效率当然快。所以还是要根据不同的情况选择合适的集合。
1 楼 lovexp2010 2012-09-03  
引用

在JDK的集合框架中,有一些是线程安全的,比如:Hashtable、Vector等,这些接口由于本身的代码中就实现了同步,所以效率比较低,已经被取代,实际中也使用的比较少。


请问被什么取代?实际中使用比较多的是什么?求科普~~

相关推荐

    java线程线程安全同步线程

    总的来说,理解和掌握Java线程的创建、状态管理、同步机制和线程安全是进行多线程编程的基础,这对于开发高效、稳定的并发程序至关重要。在实际编程中,应充分利用Java提供的工具和机制,避免潜在的并发问题,提升...

    java线程安全总结.doc

    Java线程安全是多线程编程中的一个关键概念,它涉及到在并发环境下如何正确地管理共享资源,确保程序的正确性和一致性。以下是对Java线程安全的深入总结: ### 一、线程安全的定义 线程安全是指当多个线程访问同一...

    java线程安全测试

    Java线程安全是多线程编程中的一个关键概念,它涉及到多个线程访问共享资源时可能出现的问题。在Java中,线程安全问题通常与并发、内存模型和可见性有关。Java内存模型(JMM)定义了如何在多线程环境下共享数据的...

    JAVA 线程实现数据库的主从同步更新

    在Java编程环境中,...总之,使用Java线程实现数据库主从同步更新是一种常见且实用的技术手段,它涉及到多线程编程、数据库操作、事务管理等多个方面。理解和掌握这些知识点对于开发高可用性的分布式系统至关重要。

    JAVA实现线程间同步与互斥生产者消费者问题

    本项目通过一个生产者消费者问题的实例,展示了如何在Java中实现线程间的同步与互斥。 生产者消费者问题是经典的并发问题之一,它涉及到两个类型的线程:生产者和消费者。生产者负责生成数据(产品),而消费者则...

    Java多线程和同步

    Java线程(二):线程同步synchronized和volatile 详细讲解Java 同步的原理技术资料

    Java多线程安全集合

    在Java中,线程安全的集合主要分为三类:同步集合、并发集合和不可变集合。 1. 同步集合(Synchronized Collections): 这些是基于非线程安全的集合(如ArrayList、HashMap)通过`Collections.synchronized*`方法...

    线程 JAVA java线程 java线程第3版 java线程第2版第3版合集

    它展示了如何与非线程安全的类共同工作,并特别关注于Swing的线程问题。新增加的一章介绍了如何为多处理器机器编写并行代码。 简而言之,本书的新版涉及了有关线程的方方面面,从最简单的动画applet到最复杂的应用...

    java 线程同步 信号量控制同步

    Java 线程同步控制机制 线程同步是 Java 编程中的一种机制,用于控制多个线程之间的资源访问顺序,以避免线程之间的冲突和数据不一致。线程同步的目的就是避免线程“同步”执行,即让多个线程之间排队操作共享资源...

    操作系统实验 多线程同步与互斥 java编写 有界面

    在“操作系统实验 多线程同步与互斥 java编写 有界面”的实验中,可能需要设计一个图形用户界面(GUI),通过按钮或事件触发线程的创建和同步操作,直观地展示线程间的交互和同步效果。例如,可以模拟银行账户转账,...

    java线程同步java线程同步

    java线程同步java线程同步java线程同步

    Java中的线程安全与线程同步.doc

    Java中的线程安全与线程同步是多线程编程中至关重要的概念,它们涉及到如何在并发环境下保证程序的正确性和一致性。线程安全是指在多线程环境下,一个类或者方法能够正确处理并发访问,不会因为线程间的交互而导致...

    Java多线程-线程的安全问题与线程的同步机制介绍

    Java多线程-线程的安全问题与线程的同步机制介绍 在 Java 多线程编程中,线程安全问题是非常重要的一个话题。当多个线程访问同一个资源时,如果只有读操作那么不会出现线程安全问题,但是如果多个线程对资源进行读...

    java线程同步及通信

    Java线程同步与通信是多线程编程中的关键概念,用于解决并发访问共享资源时可能出现的数据不一致性和竞态条件问题。以下将详细介绍这两个主题,以及如何通过代码示例进行演示。 1. **线程同步**: 线程同步是确保...

    Java多线程-同步机制解决线程安全问题方式一:同步代码块

    总结来说,Java中的同步代码块是一种有效的解决线程安全问题的手段,通过限制对共享资源的并发访问,可以保证数据的一致性和线程的安全性。然而,过度使用同步可能会降低程序的性能,因此需要合理设计同步范围,确保...

    java线程安全以及生产者消费者demo

    Java线程安全与生产者消费者模型是多线程编程中的两个重要概念,它们在并发处理中扮演着关键角色。在Java中,线程安全是指一个类或者方法在多线程环境下能够正确地处理数据,避免数据的不一致性或竞态条件。而生产者...

    java多线程同步例子

    java多线程同步互斥访问实例,对于初学者或是温故而知新的同道中人都是一个很好的学习资料

    java线程与并发编程实践

    并发编程的核心挑战在于线程间的同步与通信。Java提供了一系列并发工具类,如Semaphore(信号量)、CyclicBarrier(循环屏障)、CountDownLatch(计数器门锁)和Exchanger(交换器),它们用于控制线程间访问资源的...

    Java、Android线程安全与多线程数据同步

    NoHttp核心架构之多线程通信、线程安全、线程同步;synchronized锁,Lock锁;具体讲解请移步:http://blog.csdn.net/yanzhenjie1003/article/details/50992468

Global site tag (gtag.js) - Google Analytics