النشر: كائن هو تمكينه من الإشارة إليه بواسطة الكود خارج النطاق الحالي:
النماذج الشائعة: تخزين الإشارات إلى الأشياء إلى المجالات الثابتة العامة ؛ مراجع عودة في الأساليب غير الخاصة ؛ نشر مثيلات الطبقة الداخلية ، بما في ذلك المراجع.
الهروب: نشر الكائن عندما لا يكون جاهزًا.
لا تدع هذا المرجع يهرب من المُنشئ. على سبيل المثال ، ابدأ مؤشر ترابط في المنشئ ، وسيحتوي مؤشر الترابط على إشارات إلى الكائن.
حاوية متزامنة: يؤدي الوصول إلى السفر إلى جميع حالات الحاوية ، المتجه ، hashtable ، cllections.synchronizedmap | قائمة
حاويات متزامنة: concurrenthashmap ، copyOnwriteArraylist ، concurrentLinkedqueue ، blockingqueue
سرد مزايا ميزة الوصول العشوائي.
يضيف الحظر القابل للكتلة الحصول على عملية تعيين
ConcurrentHashMap: أقفال منفصلة ، مما يجلب إنتاجية عالية للوصول المتزامن ، مع عدم وجود أداء للوصول تقريبًا لخيط واحد. يعود مؤلف ضعيف ثابت.
سوف يكتشف الاتساق الضعيف للمؤلف التغييرات في الحاوية بعد إنشاء التكرار.
يتم إضعاف حجم الحاوية المتزامنة () ، isempty () ويعيد نتيجة تقريبية.
CopyOnWriteArrayList: نسخ في كل مرة يتم فيها تعديل الحاوية ، ومتطلبات التكرار أكبر من متطلبات التعديل.
نموذج المنتج والمستهلك ، باستخدام قوائم قوائم حظر محددة لدلالات المنتجين ورمز المستهلكين.
يقوم إطار تنفيذ المهام التنفيذي بتنفيذ المنتج ونموذج المستهلك.
Synchronousqueue: ضع الانتظار حتى يكون المستهلك متاحًا ، وانتظر أن يكون المنتج متاحًا ، ومناسبة للسيناريوهات حيث يكون المستهلك كافياً.
يرتبط قائمة انتظار مزدوجة الطول بوضع سرقة العمل. يختلف عن حقيقة أن جميع المستهلكين يشاركون قائمة انتظار عمل في وضع المنتج المستهلك. كل مستهلك في وضع سرقة العمل لديه قائمة انتظار مزدوجة نهاية. إذا أكمل المستهلك جميع أعماله ، فيمكنه سرقة المهام في نهاية طوابير المستهلك الأخرى.
يعد وضع سرقة العمل مناسبًا عند التشغيل إلى وحدة من المهمة ، يمكن تحديد المزيد من المهام ، مثل اجتياز الملفات.
عندما تتمكن طريقة ما من رمي مقاطع المقاطع ، فهذا يعني أنها طريقة قابلة للحظر. رمي أو catch interruptedException.
Synchronizer: Synchronizer --- semaphore ، الحاجز ، المزلاج ، يتغلف الحالة ، ويحدد سلوك الخيط في هذه الحالة (تمرير أو كتل) ، طريقة لمعالجة الحالة ، وينتظر بكفاءة المزامنة للدخول إلى الحالة المطلوبة.
قفل المزلاج: يؤخر تقدم الخيط حتى يصل الخيط إلى حالة نهائية ، مثل مفتاح لمرة واحدة. يمكن استخدامه للتأكد من عدم حدوث نشاط معين حتى يتم الانتهاء من أنشطة أخرى.
على سبيل المثال:
يمكن استخدام مستقبلات FutureTask كحساب للنتيجة المحمولة المجردة ، ويتم تنفيذها من خلال قابلة للاستدعاء. Future.get يعتمد على حالة تنفيذ المهمة. إذا تم الانتهاء من المهمة ، فسيتم إرجاع النتيجة. خلاف ذلك ، سوف تنتظر.
يستخدم إطار عمل Executor FutureTask لإكمال المهام غير المتزامنة.
مربعات الإشارة: تستخدم للتحكم في عدد الأنشطة التي يمكنها الوصول إلى مورد معين في وقت واحد أو إجراء عملية معينة في نفس الوقت ، تجمع الموارد ، حدود الحاوية.
مستوى الحاجز: على غرار القفل ، يجب أن تصل جميع الخيوط إلى المستوى في نفس الوقت قبل أن تتمكن من متابعة المعالجة. ينتظر القفل للوقت ، وينتظر المستوى على خيوط أخرى ، ويتم إعادة استخدامها. من خلال المستوى ، ستعيد Ayait رقم فهرس وصول فريد لكل مؤشر ترابط ، والذي يمكن استخدامه لانتخاب قائد والقيام ببعض المهام الخاصة في التكرار التالي.
المبادل هو شكل من أشكال مستوى.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة في دراسة أو عمل الجميع. آمل أيضًا دعم wulin.com أكثر!