جدول المحتويات:
التعريف - ماذا يعني الذري؟
Atomic عبارة عن مجموعة أدوات لفئات الحزمة java.util.concurrent.atomic المتغيرة ، والتي تساعد في كتابة خوارزميات تأمين القفل والانتظار مع لغة Java. خوارزمية تتطلب مؤشرات ترابط جزئية فقط للتقدم المستمر خالية من القفل. في خوارزمية خالية من الانتظار ، تحرز جميع سلاسل العمليات تقدمًا مستمرًا ، حتى في حالات فشل سلسلة الرسائل أو تأخيرها. تُعرف خوارزميات القفل والانتظار المجانية أيضًا باسم الخوارزميات غير المحجوبة. تُستخدم الخوارزميات غير المحجوبة في جدولة العمليات والترابط في نظام التشغيل ومستويات الجهاز الظاهري لـ Java.
Techopedia يشرح الذرية
تحتوي جميع فئات الحزمة java.util.concurrent.atomic على البادئة "الذرية" في أسمائها. هناك أنواع مختلفة من المتغيرات الذرية المتاحة في الحزمة java.util.concurrent.atomic ، بما في ذلك:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
مثال على ذلك سيناريو حيث يحمل مؤشر ترابط A تأمين. A قادر فقط على الوصول وإجراء تغييرات على المتغيرات المحمية بواسطة هذا القفل. إذا كان مؤشر الترابط B يحمل هذا القفل بعد A ، فلن يتمكن إلا B من عرض تغييرات A على المتغيرات المحمية بواسطة هذا القفل المعين. المشكلة الرئيسية في القفل تحدث عندما يحاول B الحصول على قفل ممسك بـ A. في هذه الحالة ، يتم حظر B للانتظار حتى يتوفر القفل. الخوارزميات nonblocking حل هذه المشكلة.
الغرض الرئيسي من بناء الطبقات الذرية هو تنفيذ هياكل البيانات غير المحصورة وفئات البنية التحتية المرتبطة بها. لا تعمل الفئات الذرية كبدائل لـ java.lang.Integer والفئات ذات الصلة. تستخدم معظم فئات الحزمة java.util.concurrent المتغيرات الذرية بدلاً من المزامنة ، إما بشكل مباشر أو غير مباشر. تُستخدم المتغيرات الذرية أيضًا لتحقيق إنتاجية أعلى ، مما يعني أداء أعلى لخادم التطبيقات.
