Đồng bộ hóa giữa các Thread trong Python

Written on October 15, 2020

Giới thiệu về bài toán kinh điển “Bữa ăn tối của các triết gia”

Bài toán buổi ăn tối của các triết gia được đề xuất lần đầu tiên bởi E. W. Dijkstra. Bài toán có nội dung như sau:

  • Có 5 triết gia ngồi xung quanh một chiếc bàn tròn
  • Mỗi triết gia có một bát mỳ Ý và một chiếc nĩa được đặt giữa mỗi cặp triết gia kề nhau
  • Mỗi triết gia phải thay phiên suy nghĩ và ăn mỳ
  • Tuy nhiên, một triết gia chỉ có thể ăn mỳ khi họ cả cả nĩa đặt bên trái và nĩa đặt bên phải của họ
  • Mỗi một chiếc nĩa chỉ được sử dụng bởi một triết gia tại một thời điểm, do đó một triết gia chỉ sử dụng được nĩa khi nó hiện đang chưa được sử dụng bởi triết gia khác
  • Sau khi một triết gia ăn mỳ xong cần đặt cả hai nĩa trở về vị trí gốc ban đầu để các triết gia còn lại có thể sử dụng
  • Một triết gia không thể bắt đầu ăn khi họ chưa lấy được đầy đủ cả hai nĩa
Written by Nguyen Truong Long