Building a Snake game
Let's now build a simple Snake game. As usual, we will be making use of the Canvas widget to provide the platform for our Snake program.
We will use canvas.create_line
to draw our snake, and canvas.create_rectangle
to draw the snake food.
The primary objective for this project is to learn how to use Queue as a synchronization technique in a multithreaded application.
Writing a multithreaded application poses the challenge of synchronization between different threads. When multiple threads try to access shared data simultaneously, the data is likely to get corrupted or modified in ways that were not intended in the program. This is called a race condition.
7.02_race_condition.py
demonstrates a race condition. The program is as follows:
import threading class RaceConditionDemo: def __init__(self): self.shared_var = 0 self.total_count = 100000 self.demo_of_race_condition() def increment(self): for i in range(self.total_count): ...