هناك العديد من الطرق لكتابة المفردات ، وهذا المثال هو وسيلة لكتابة المفردات البطيئة. ما تجدر الإشارة إليه في بيئات التزامن العالية:
1. عندما يصل المفرد في وقت واحد ويطلق على طريقة getInstance المقابلة ، فإنه سيؤدي أيضًا إلى إنشاء كائنات مثيل متعددة ، والقفل ضروري.
2. استخدام المزامنة هو حل أفضل. الميزة هي أن الكود موجز ، والعيوب هو أنه لا يمكن التعامل مع الصيانة والحفاظ عليها عند إلقاء استثناء ، وبالتالي فإن النظام في حالة جيدة.
3. إعدادات القفل المعروضة هي حل جيد.
الرمز باستخدام القفل كما يلي:
حزمة العرض التوضيحي ؛ استيراد java.util.concurrent.locks.lock ؛ استيراد java.util.concurrent.locks.reentrantlock ؛ / ** * الاستخدام المرجعي * Author watson_xu * date 2012-1-8 04:31:09 PM */ Public Class SingletonContext {private Static SingletonContext sc = null ؛ خاص singletoncontext () {} قفل ثابت خاص = جديد reentrantlock () ؛ public static 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 pm */ public class singletoncontext {private static singletoncontext sc = null ؛ خاص singletonContext () {} SingletonContext static static singletontext () {if (null == sc) {sc = new SingletonContext () ؛ } إرجاع SingletonContext جديد () ؛ }}لعرض المزيد من بناء جملة Java ، يمكنك متابعة: "التفكير في Java Chinese Manual" ، "JDK 1.7 المرجعية النسخة الإنجليزية الرسمية" ، "JDK 1.6 API Java الصينية المرجعية" ، "JDK 1.5 API Java الصينية المرجعية". آمل أيضًا أن يدعم الجميع wulin.com أكثر.