السلام عليكم ورحمة الله
السلام عليكم
التمرين عبارة عن moniteur جافا لمشكلة readers/writers
الأولوية لـ writers
on suppose que la priorité est donné aux rédacteurs qui attendent . Ainsi dès qu ' un rédacteur est disponible , tous les nouveaux lecteurs sont bloqués jusqu a ce que tous les rédacteurs auront terminés . bien sur , dans d'extremes situations cela va mener à une famine des lecteurs
المطلوب بسيط جدا وهو إكمال الكود التالي
public class ReadersWriters
{
public synchronized void startWrite()
{
/* wait until it is ok to write */
while(writing || waitingWriters > 0)
{
waitingWriters++;
wait();
waitingWriters--;
}
writing=true;
}
public synchronized void stopWrite()
{
writing=false;
notifyAll();
}
public synchronized void startRead()
{
/*wait until it is ok to read */
while (writing || waitingWriters > 0)
wait();
readers++;
}
public synchronized void stopRead()
{
readers--;
if(readers = 0)
notifyAll();
}
private int readers = 0 ;
private int waitingWriting = 0 ;
private boolean writing = false ;
}المطلوب إكمال الكود بما ينقصه وأنا عملت محاولة والتي باللون الأحمر
أرجوتصحيح الأخطاء مع الشرح
حتى وإن كان حلي خاطئ راح يكون الحل على حسب عدد الأماكن يعني لي باللون الأحمر لايكون سطر كود زائد
وعندي سؤال آخر لماذا هذه الكلاس غير مشتقة من thread
