วันพฤหัสบดีที่ 6 ธันวาคม พ.ศ. 2550

1.8 Monitor

การใช้ Semaphore ดูเป็นเรื่องง่าย แต่ถ้าดูให้ลึกซึ้งพิจารณาดังนี้ สมมุติมีปฏิบัติการ Down 2 ปฏิบัติการในโค้ดของ Producer ที่เรียงย้อนกลับดังนั้น Mutex จะลดค่าก่อน emptyแทนที่จะลดค่าภายหลังถ้าบัฟเฟอร์เต็มแล้ว Producer จะถูกบล็อก โดย Mutex จะมีค่าเป็น 0 สภาวะเช่นนี้เรียกว่า “ Consumer “ ที่กล่าวมาเป็นการเตือนให้ระมัดระวังการใช้ Semaphore เพื่อป้องกันข้อผิดพลาดที่จะเกิดขึ้น

ไม่มีความคิดเห็น: