1. نظرة عامة
في هذا البرنامج التعليمي ، سنتعلم كيفية تنفيذ Ring Buffer في Java.
2. حلقة العازلة
Ring Buffer (أو Circular Buffer) عبارة عن بنية بيانات دائرية مقيدة تُستخدم لتخزين البيانات مؤقتًا بين خيطين أو أكثر . بينما نستمر في الكتابة إلى المخزن المؤقت الحلقي ، فإنه يلتف حوله عند وصوله إلى النهاية.
2.1. كيف تعمل
يتم تنفيذ Ring Buffer باستخدام مصفوفة ذات حجم ثابت تلتف حول الحدود .
بصرف النظر عن المصفوفة ، فإنه يتتبع ثلاثة أشياء:
- الفتحة المتاحة التالية في المخزن المؤقت لإدراج عنصر ،
- العنصر غير المقروء التالي في المخزن المؤقت ،
- ونهاية المصفوفة - النقطة التي يلتف عندها المخزن المؤقت حول بداية المصفوفة
تختلف آليات كيفية معالجة المخزن المؤقت الحلقي لهذه المتطلبات باختلاف التنفيذ. على سبيل المثال ، ملف ويكيبيديا يُظهر الإدخال في الموضوع طريقة باستخدام المؤشرات الأربعة.
سنستعير النهج من المعطل تنفيذ المخزن المؤقت الحلقي باستخدام التسلسلات.
أول شيء نحتاج إلى معرفته هو السعة - الحجم الأقصى الثابت للمخزن المؤقت. التالي، سنستخدم اثنين زيادة رتيبة التسلسلات :
- اكتب التسلسل: بدءًا من -1 ، يزداد بمقدار 1 عندما نقوم بإدراج عنصر
- قراءة التسلسل: بدءًا من 0 ، يزداد بمقدار 1 عندما نستهلك عنصرًا
يمكننا تعيين تسلسل إلى فهرس في المصفوفة باستخدام عملية تعديل:
1
arrayIndex = sequence % capacity
ال عملية تعديل تلتف التسلسل حول الحدود لاشتقاق فتحة في المخزن المؤقت :
دعونا نرى كيف نقوم بإدراج عنصر:
1
buffer[++writeSequence % capacity] = element
نحن نعمل على زيادة التسلسل مسبقًا قبل إدخال عنصر.
لاستهلاك عنصر نقوم بإجراء زيادة لاحقة:
1
element = buffer[readSequence++ % capacity]
في هذه الحالة ، نقوم بإجراء زيادة لاحقة على التسلسل. لا يؤدي استهلاك عنصر ما إلى إزالته من المخزن المؤقت - إنه يبقى فقط في المصفوفة حتى يتم استبداله .
2.2. المخازن المؤقتة الفارغة والكاملة
# الخوارزميات # جافا
feedproxy.google.com
تنفيذ Ring Buffer في Java
تعرف على كيفية تنفيذ Ring Buffer في Java. في هذا البرنامج التعليمي ، سوف نتعلم كيفية تنفيذ Ring Buffer في Java.