`
hongliangpan
  • 浏览: 313182 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

线程安全性5种级别

阅读更多

线程安全性5种级别

  1. 1.       不可变

不变的对象绝对是线程安全的,不需要线程同步,如String、Long、BigInteger

  1. 2.       无条件的线程安全

对象自身做了 足够的内部同步,也不需要外部同步,如 Random 、ConcurrentHashMap、Concurrent集合、atomic

  1. 3.       有条件的线程安全

对象的部分方法可以无条件安全使用,但是有些方法需要外部同步,需要Collections.synchronized;有条件线程安全的最常见的例子是遍历由 Hashtable 或者 Vector 或者返回的迭代器

  1. 4.       非线程安全  线程兼容

对象本身不提供线程安全机制,但是通过外部同步,可以在并发环境使用, 如ArrayList HashMap

  1. 5.       线程对立

即使外部进行了同步调用,也不能保证线程安全,这种情况非常少,如如System.setOut()、System.runFinalizersOnExit()

分享到:
评论

相关推荐

    shared_ptr线程安全性全面分析

    shared_ptr的线程安全性boost官方文档对shared_ptr线程安全性的正式表述是:shared_ptr对象提供与内置类型相同级别的线程安全性。【shared_ptrobjects offer the same level of thread safety as built-in types.】...

    iniparser:ini文件解析器

    主要特点 : 小:4个文件(2个.c和2个.h)内大约1500 sloc 可移植:无依赖关系,用-ansi -pedantic C89编写完全具有保护性:易于使其成为线程安全的(仅通过互斥体包围库调用)II-建筑项目在项目的根部进行简单的...

    多线程编程指南PDF

    并发性和并行性.................................................................................................................................18 多线程结构一览...........................................

    多线程编程指南(系统描述了线程标准 线程同步 多线程编程原则 等)

    并发性和并行性 18 多线程结构一览 18 线程调度19 线程取消19 线程同步20 使用64 位体系结构20 2 基本线程编程23 线程库...........................................................................................

    操作系统课程设计-同步机制-读者写者

    此函数允许有安全性设置、手工还是自动重置的标志以及初始时已接受还是未接受信号状态的标志 OpenEvent() 创建对已经存在的事件对象的引用。此API函数需要名称、继承标志和所需的访问级别 SetEvent() 将手工重置事件...

    并发危险-解决多线程代码中的11个常见的问题

    本文将介绍以下内容:基本并发概念并发问题和抑制措施实现安全性的模式横切概念本文使用了以下技术:多线程、.NETFramework 目录数据争用忘记同步粒度错误读写撕裂无锁定重新排序重新进入死锁锁保护戳记两步舞曲...

    coreMQTT-Agent:实现MQTT代理(或守护程序)任务,以在不同的执行线程之间共享简单的MQTT连接

    相反,必须由更高级别的软件来提供线程安全性。 该实验室项目实现了coreMQTT扩展,该扩展以MQTT代理(或MQTT守护程序)的形式提供了更高级别的功能。 尽管此处演示的实现当前仅针对FreeRTOS,但对FreeRTOS的依赖并...

    Lab-Project-coreMQTT-Agent:实现并演示用于在不同执行线程之间共享简单MQTT连接的MQTT代理(或守护程序)任务

    相反,必须由更高级别的软件来提供线程安全性。 该实验室项目实现了coreMQTT扩展,该扩展以MQTT代理(或MQTT守护程序)的形式提供了更高级别的功能。 尽管此处演示的实现当前仅针对FreeRTOS,但对FreeRTOS的依赖

    Win7系统音频系统底层API

    3. 提高了安全性(在安全的,低优先级别的线程处理被保护的音频内容) 4. 为单独的音频设备分配了特定的系统级别的规则 (console, multimedia, communications) 。 5. 用户可以直接操作相应音频终端设备(Audio ...

    findbugs常见Bug以及处理办法

    Multithreaded correctness: 多线程正确性 Performance:性能 Security:安全 Dodgy: 欺骗性代码 2、 常见Bug以及处理办法 a) 不需要处理 May expose internal representation by incorporating reference to mutable...

    zlog使用手册

    zlog是一个高可靠性、高性能、线程安全、灵活、概念清晰的纯C日志函数库。事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好...

    C# 本地音频开源库

    3. 提高了安全性 (在安全的,低优先级别的线程处理被保护的音频内容) 4. 为单独的音频设备分配了特定的系统级别的规则 (console, multimedia, communications) 。 5. 用户可以直接操作相应音频终端设备(Audio ...

    VISTA、Win Server 2008、Win7 等系统音频系统底层API(升级版)

    3. 提高了安全性 (在安全的,低优先级别的线程处理被保护的音频内容) 4. 为单独的音频设备分配了特定的系统级别的规则 (console, multimedia, communications) 。 5. 用户可以直接操作相应音频终端设备(Audio ...

Global site tag (gtag.js) - Google Analytics