📅  最后修改于: 2023-12-03 14:41:17.946000             🧑  作者: Mango
Foobar
是一个编程领域内常用的示例主题。它由一个含有静态变量的函数和一个会更新该变量的线程组成。
import threading
class Foobar:
def __init__(self):
self.runnable = True
def foo(self) -> None:
for i in range(5):
while not self.runnable:
continue
print("foo", end="")
self.runnable = False
def bar(self) -> None:
for i in range(5):
while self.runnable:
continue
print("bar", end="")
self.runnable = True
if __name__ == '__main__':
fb = Foobar()
thread1 = threading.Thread(target=fb.foo)
thread2 = threading.Thread(target=fb.bar)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
foobarfoobarfoobarfoobarfoobar
在这个示例中,我们创建了一个 Foobar
类,它有两个函数 foo
和 bar
。foo
函数会在 self.runnable
为 True 时输出 foo
,然后将 self.runnable
设为 False。bar
函数会在 self.runnable
为 False 时输出 bar
,然后将 self.runnable
设为 True。Foobar
类的两个函数将在两个不同的线程中执行。 thread1
会执行 foo
函数, thread2
会执行 bar
函数。
我们启动这两个线程,并让它们执行完,最后输出了 "foobarfoobarfoobarfoobarfoobar"。这是因为 foo
和 bar
函数会交替执行,每次只打印一个字符。