小编Liu*_*hua的帖子

使用"私有最终锁定"和同步结果的Java锁定不相同

我尝试编写一些关于Lock和synchronized的代码,并比较它们的性能差异.

码:

public abstract class Task {
    public abstract int getTotal();
}

// Lock test class
public class TaskWithLock extends Task implements Runnable {
    private static int total = 0;
    private final Lock lock = new ReentrantLock();

    public void run() {
         try {
            lock.lock();
            doSomething();
         } finally {
            lock.unlock();
         }
    }

    private void doSomething() {
        total++;
    }

    public int getTotal() {
        return total;
    }
}

// Synchronized test class
public class TaskWithSync extends Task implements Runnable {
    private static int …
Run Code Online (Sandbox Code Playgroud)

java multithreading locking synchronized

4
推荐指数
1
解决办法
276
查看次数

Java RoundingMode.HALF_EVEN是bug吗?

当我用HALF_EVEN模式舍入一个双号时,我发现了一个问题,我不知道它是否是JDK的一个bug?请参阅以下代码:

public static void main(String[] args) {
    RoundingMode mode = RoundingMode.HALF_EVEN;
    for (int i = 10; i < 100; i++) {
        double d = i + 0.55;
        int scale = 1;
        process(d, scale++, mode);

        d = i + 0.555;
        process(d, scale++, mode);

        d = i + 0.5555;
        process(d, scale++, mode);

        d = i + 0.55555;
        process(d, scale++, mode);
        System.out.println("\n");
    }
}

private static void process(double d, int scale, RoundingMode roundingMode) {
    BigDecimal b = new BigDecimal(d).setScale(scale, roundingMode);
    System.out.println(d + " …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
1
解决办法
214
查看次数

标签 统计

java ×2

locking ×1

multithreading ×1

synchronized ×1