📜  foobar (1)

📅  最后修改于: 2023-12-03 14:41:17.946000             🧑  作者: Mango

介绍 Foobar

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 类,它有两个函数 foobarfoo 函数会在 self.runnable 为 True 时输出 foo ,然后将 self.runnable 设为 False。bar 函数会在 self.runnable 为 False 时输出 bar,然后将 self.runnable 设为 True。Foobar 类的两个函数将在两个不同的线程中执行。 thread1 会执行 foo 函数, thread2 会执行 bar 函数。

我们启动这两个线程,并让它们执行完,最后输出了 "foobarfoobarfoobarfoobarfoobar"。这是因为 foobar 函数会交替执行,每次只打印一个字符。