private static byte[] LOCK = new byte[0];
synchronized (LOCK) {
……
}
说明:零长度的byte数组对象创建起来将比任何对象都经济――查看编译后的字节码: 生成零长度的byte[]对象只需3条操作码,而Object lock = new Object()则需要7行操作码。
本文探讨了使用零长度的byte数组作为同步锁的优化技巧。这种锁对象创建成本低,仅需3条操作码,远低于普通对象的7条。通过synchronized关键字配合零长度byte数组,可以实现更高效的线程同步。
private static byte[] LOCK = new byte[0];
synchronized (LOCK) {
……
}
说明:零长度的byte数组对象创建起来将比任何对象都经济――查看编译后的字节码: 生成零长度的byte[]对象只需3条操作码,而Object lock = new Object()则需要7行操作码。

被折叠的 条评论
为什么被折叠?