力扣交替打印FooBar

這道題要注意的是兩個線程喚醒和等待的順序,應為第一個線程會比第二個線程更早結束,所以如果第一個線程已經結束,而第二個線程還在等待被喚醒,那第二個線程會一直等待下去,因此第一個線程要先等待后喚醒,這樣他會先喚醒第二個線程再結束

  • 語無倫次,直接看代碼吧
from threading import Condition, Thread
import timedef printFoo():print('foo', end='')time.sleep(0.5)def printBar():print('bar', end='')time.sleep(0.5)class FooBar:def __init__(self, n):self.n = nself._lock = Condition()def foo(self, printFoo) -> None:self._lock.acquire()for i in range(self.n):printFoo()# 這里要先等待self._lock.wait()self._lock.notify_all()self._lock.release()def bar(self, printBar) -> None:self._lock.acquire()for i in range(self.n):printBar()# 這里要先喚醒其他線程,self._lock.notify_all()self._lock.wait()self._lock.release()if __name__ == '__main__':n = 10foobar = FooBar(n)t1 = Thread(target=foobar.foo, args=(printFoo,))t2 = Thread(target=foobar.bar, args=(printBar,))# t2.start()t1.start()t2.start()

執行用時 :132 ms, 在所有 Python3 提交中擊敗了85.39%的用戶
內存消耗 :16.1 MB, 在所有 Python3 提交中擊敗了100.00%的用戶

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457566.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457566.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457566.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

項目開發容易出錯情況統計

2016年11月17日 11:30:45 星期四 1.適配: a) APP彈窗大屏幕適配(例如, 是否居中) 2.按鈕狀態: a) 按鈕點擊后沒有disable 如果新頁面加載卡頓導致用戶多次點擊,生成多次請求 b) 按鈕disable后什么時候enabl…

python會不會出4_無極4網人生苦短,Python會不會被取代?國外網友

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。人生苦短,我該不該選擇Python?編程語言幾年一變樣,榜單之爭也是愈演愈烈,還架不住時不時殺出個黑馬……而對于Python,自2010年初以來一直蓬…

android 音頻播放總結 soundlPool,MediaPlay

soundlPool 用于小音頻的播放多個同時播放。 使用步驟: 步驟一: 首先下載音頻文件可以將其放入assets文件夾下或者res下的raw文件夾下,區別在于assets下可以再新建文件夾而raw不行,assets內部單個文件超過1m時可能存在bug而raw不會…

文本分析軟件_十大針對機器學習的文本注釋工具與服務,你選哪個?

房地產和鍵【51CTO.com快譯】目前,從搜索引擎與情感分析,到虛擬助手與聊天機器人,機器學習應用場景中的許多研究領域,都需要通過文本注釋工具與服務來提供準確性。在AI研究與開發行業中,發現或創建可注釋的數據對于項目…

sqlite創建表

create table bike (id varchar(6) primary key, password char(6));

python 垃圾回收機制

DAY 18. python垃圾回收機制 python GC主要有三種方式 引用計數標記清除分代回收 其中,以引用計數為主。 18.1 引用計數(Reference Counting) 《尋夢環游記》中說,人一生會經歷兩次死亡,一次是肉體死的時候&#…

曲線連接線_荷重位移曲線儀操作使用注意事項-荷重位移曲線儀廠家

荷重位移曲線儀廣泛適用于各種按鍵及開關、DOME片、按鍵、微力彈片、硅膠按鍵、汽車開關之荷重-行程測定;Windows中英文雙語軟件,操作簡單方便,軟件流暢穩定,所有測試資料(測試條件,曲線,數據結果&#xff…

進程調度

1、策略 策略決定調度程序在何時讓什么進程運行。調度器的策略往往決定系統的整體印象,并且,還要負責優化使用處理器時間。 1.1 I/o消耗型和處理器消耗型。 進程可以被分為I/O消耗型和處理器消耗型。前者指進程的大部分時間用來提交I/O請求或者等待I/O請…

Django,Ajax,Vue實現文章評論功能

Django評論 評論復雜的地方在于需要實現點擊提交評論后評論內容需要立刻出現在下面,還要保持頁面位置不變,所以提交后不能整體刷新頁面,因為刷新以后頁面肯定在最上面,而評論一般都在最下面,所以要用到Ajax 整個過程用…

回歸分析什么時候取對數_冬蜜什么時候取,冬天取蜂蜜的方法

大家好,我現在分享的是,在冬天是在什么時候取蜜!冬天在我們南方,取蜜時間是十一月到十二月的時候,只要溫度達到15度以上,蜂蜜封蓋了就可以取蜜了,并且在冬天我們只能取一次,最晚取蜜…

Opencv與dlib聯合進行人臉關鍵點檢測與識別

前言 依賴庫:opencv 2.4.9 /dlib 19.0/libfacedetection 本篇不記錄如何配置,重點在實現上。使用libfacedetection實現人臉區域檢測,聯合dlib標記人臉特征點,最后使用opencv的FaceRecognizer實現人臉識別。 準備工作 1、配置好Op…

Category 的一些事

來源:伯樂在線 - Tsui YuenHong 鏈接:http://ios.jobbole.com/90422/ 點擊 → 申請加入伯樂在線專欄作者 新增實踐部分:偏方 Hook 進某些方法來添加功能 Category – 簡介 Category(類別)是 Objective-C 2.0 添加的新特…

python tfidf特征變換_機器學習的“萬能模板” - 數據分析

最后是文本變量。很遺憾Titanic數據集中沒有合適的文本變量。一般我們處理文本變量的方法是,合并所有的文本形成一個變量,然后調用Count Vectorizer或者TfidfVectorizer算法,將文本數據轉換成數字。大部分情況下,TfidfVectorizer比…

python實現哈希表

# python 實現哈希表class HashTable:"""哈希函數的構造解決沖突"""def __init__(self, source):self.source sourceself._index []self._val []self.table []self._mod 13def Output(self):print(self._index)print(self._val)def _create…

商品綜合評價排名

店內有很多產品,而且包含但不局限于以下指標:瀏覽量、訪客數、平均停留時長、詳情頁跳出率、下單轉化率、下單支付轉化率、支付轉化率、下單金額、下單商品件數、下單買家數、支付金額、支付商品件數、加購件數、訪客平均價值、收藏人數、客單價、搜索支…

ionic資源網站

http://ionichina.com/topic/570b1f4ecd63e4247a7cfcf3 http://doc.ionicmaterialdesign.com/#intro http://ionicmaterial.com/demo/ 10大materialhttp://www.open-open.com/news/view/192f93e轉載于:https://www.cnblogs.com/znsongshu/p/6079357.html

pytorch神經網絡因素預測_實戰:使用PyTorch構建神經網絡進行房價預測

微信公號:ilulaoshi / 個人網站:lulaoshi.info本文將學習一下如何使用PyTorch創建一個前饋神經網絡(或者叫做多層感知機,Multiple-Layer Perceptron,MLP),文中會使用PyTorch提供的自動求導功能,訓練一個神經…

SQL基本操作

SQL 操作 檢索數據 SELECT 檢索數據 -- 檢索單個列 SELECT 列名 FROM table_name;-- 檢索多個列 SELECT 列1, 列2 FROM table_name;-- 檢索所有列 SELECT * FROM table_name;-- 檢索不同的值 SELECT DISTINCT 列名 FROM table_name;限制檢索結果 -- SQL Server / Access SE…

git 忽略 部分文件夾_git提交忽略某些文件或文件夾

記得第一次用 github 提交代碼,node_modules 目錄死活傳不上去,哈哈哈,后來才知道在 .gitignore 文件里設置了忽略 node_modules 目錄上傳。是的, .gitignore 文件就是設置那些你不想用 git 一起上傳的文件和文件夾。比如剛接觸到…

Ajax實現原理詳解

Ajax:Asynchronous javascript and xml,實現了客戶端與服務器進行數據交流過程。使用技術的好處是:不用頁面刷新,并且在等待頁面傳輸數據的同時可以進行其他操作。 這就是異步調用的很好體現。首先得了解什么是異步和同步的概念。…