Есть много способов писать одиноких, и этот пример - способ написать ленивые синглтоны. Что следует отметить в средах с высоким параллелизмом:
1. Когда односпальный доступ к выходу на доступ к соответствующему методу GetInstance, он также приведет к созданию нескольких объектов экземпляров, и необходимо блокировка.
2. Использование синхронизации является лучшим решением. Преимущество состоит в том, что код является кратким, и недостаток в том, что обслуживание не может быть обработано и поддерживается при броске исключения, поэтому система находится в хорошем состоянии.
3. Отображаемые настройки блокировки являются хорошим решением.
Код с использованием блокировки выглядит следующим образом:
Демонстрация упаковки; импортировать java.util.concurrent.locks.lock; Import java.util.concurrent.locks.reentrantlock; / ** * Справочное использование * @author Watson_xu * @Date 2012-1-8 04:31:09 */ Public Final Class SingletonContext {Private Static SingletonContext sc = null; private singletoncontext () {} private Static Lock Lock = new Reentrantlock (); public static singletoncontext getInstance () {if (sc == null) {lock.lock (); if (sc == null) {try {sc = new singletoncontext (); } наконец {lock.unlock (); }} return sc; }}При использовании синхронизации код выглядит следующим образом:
Демонстрация упаковки; / ** * Ссылка на использование * @author Watson_xu * @Date 2012-1-8 04:31:09 */ Public Final Class SingletonContext {Private Static SingletonContext sc = null; private singletoncontext () {} public static synchronized singletoncontext getInstance () {if (null == sc) {sc = new singletoncontext (); } вернуть новый SingletonContext (); }}Чтобы просмотреть больше синтаксиса Java, вы можете следовать: «Мысль в китайском руководстве Java», «JDK 1.7 Справочное руководство по английской версии», «Руководство по справочнику JDK 1.6 API Java», «Руководство JDK 1.5 API Java китайское справочное руководство». Я также надеюсь, что все будут поддерживать Wulin.com больше.