File tree Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Expand file tree Collapse file tree 1 file changed +54
-0
lines changed Original file line number Diff line number Diff line change 1+ import threading
2+ import queue
3+ import turtle
4+
5+ # Create the queue for shapes
6+ shape_queue = queue .Queue ()
7+
8+ def create_turtle ():
9+ return turtle .Turtle ()
10+
11+ def draw_rectangle ():
12+ turtle = create_turtle ()
13+ turtle .color ("purple" )
14+ turtle .penup ()
15+ turtle .goto (- 100 , 0 )
16+ turtle .pendown ()
17+ turtle .begin_fill ()
18+ for i in range (4 ):
19+ turtle .forward (100 )
20+ turtle .left (90 )
21+ turtle .end_fill ()
22+
23+ def draw_circle ():
24+ turtle = create_turtle ()
25+ turtle .color ("pink" )
26+ turtle .penup ()
27+ turtle .goto (100 , 0 )
28+ turtle .pendown ()
29+ turtle .begin_fill ()
30+ turtle .circle (50 )
31+ turtle .end_fill ()
32+
33+ def worker ():
34+ while True :
35+ shape , * args = shape_queue .get ()
36+ if shape == 'rectangle' :
37+ draw_rectangle (* args )
38+ elif shape == 'circle' :
39+ draw_circle (* args )
40+ shape_queue .task_done ()
41+
42+ # Start the worker thread
43+ thread = threading .Thread (target = worker , daemon = True )
44+ thread .start ()
45+
46+ # Queue up the shapes
47+ shape_queue .put (('rectangle' ,))
48+ shape_queue .put (('circle' ,))
49+
50+ # Wait for the shapes to be drawn
51+ shape_queue .join ()
52+
53+ # Exit the program
54+ turtle .done ()
You can’t perform that action at this time.
0 commit comments