线程安全程序如何包含非线程安全的类?

时间:2013-08-24 23:19:05

标签: java multithreading concurrency

我刚刚从第17页开始阅读Java Concurrency in Practice

  

我们使用了“线程安全类”和“线程安全程序”这两个术语   到目前为止几乎可以互换。是一个线程安全的程序   完全由线程安全的类构成?不一定是 - a   完全由线程安全类组成的程序可能不是   线程安全,并且线程安全的程序可能包含类   不是线程安全的。

  • 线程安全程序如何包含非线程安全的类?我们非常感谢其他代码示例。

2 个答案:

答案 0 :(得分:5)

有两种基本情况可以:

  1. 非线程安全对象仅限于单个线程。

  2. 对共享的非线程安全对象的访问由使用它们的线程进行外部协调。非常简单的例子:通过同步所有访问权限

        synchronized( sharedObject ) {
            sharedObject.access();
        }
    

答案 1 :(得分:1)

因为局部变量只能由单个线程访问,所以程序可以是线程安全的,并使用局部变量,其类在其他情况下是非线程安全的。