相关疑难解决方法(0)

同步对Immutable Integer对象的访问

代码段 - 1

class RequestObject implements Runnable
{
    private static Integer nRequests = 0;

    @Override
    public void run()
    {       
        synchronized (nRequests)
        {
            nRequests++;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

代码段 - 2

class RequestObject implements Runnable
{
    private static Integer nRequests = 0;
    private static Object lock = new Object();

    @Override
    public void run()
    {       
        synchronized (lock)
        {
            nRequests++;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然第二个代码片段工作正常而没有引起任何竞争条件,但第一个代码片段不能成功同步对同一个类的不同实例(RequestObject)之间的静态数据成员的访问.有人可以对此有所了解吗?我想了解为什么第一种方法不起作用.

我最初的实现是第一个.后来我在/sf/answers/148428661/中看到了.

java multithreading synchronization

5
推荐指数
2
解决办法
432
查看次数

标签 统计

java ×1

multithreading ×1

synchronization ×1