日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

LeetCode 多线程 1115. 交替打印FooBar

發布時間:2024/5/17 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 多线程 1115. 交替打印FooBar 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1115. 交替打印FooBar

Ideas

交替鎖的設計,兩把鎖,foo執行的時候把foo lock acquire,print完了只有把bar lock release,這樣foo就得等著,然后bar執行的時候把bar lock acquire,print完了之后把foo lock release,這樣就能交替打印foo和bar了。

Code

Python

from threading import Lockclass FooBar:def __init__(self, n):self.n = nself.print_foo = Lock()self.print_bar = Lock()self.print_bar.acquire()def foo(self, printFoo: 'Callable[[], None]') -> None:for i in range(self.n):self.print_foo.acquire()# printFoo() outputs "foo". Do not change or remove this line.printFoo()self.print_bar.release()def bar(self, printBar: 'Callable[[], None]') -> None:for i in range(self.n):self.print_bar.acquire()# printBar() outputs "bar". Do not change or remove this line.printBar()self.print_foo.release()

總結

以上是生活随笔為你收集整理的LeetCode 多线程 1115. 交替打印FooBar的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。