تنفيذ Ring Buffer في Java

جرب أداة القضاء على المشاكل

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.

أنظر أيضا: