線程模塊

信號量

from threading import Semaphore,Thread
import timedef func(a,b):time.sleep(1)sem.acquire()print(a+b)sem.release()sem = Semaphore(4)
for i in range(10):t = Thread(target=func,args=(i,i+5))t.start()
信號量

事件

# 事件被創建的時候,默認為False狀態
# Flase狀態   wait()阻塞
# True 狀態   wait()非阻塞
# clear 設置狀態為False
# set   設置狀態位True# 連接數據庫
# 檢測數據庫的可連接情況import time
import random
from threading import Thread,Eventdef connect_db(e):count = 0while count<3:e.wait(0.5)       # 狀態為False的時候,只等待1秒就結束if e.is_set():print('連接數據庫')breakelse:print('第%s次連接失敗'%(count+1))count += 1else:raise TimeoutError('數據庫連接超時')def check_web(e):time.sleep(random.randint(0,3))e.set()e = Event()
t1 = Thread(target=connect_db,args=(e,))
t2 = Thread(target=check_web,args=(e,))
t1.start()
t2.start()
事件

條件:

條件——鎖
一個條件被創建之初,默認有一個False狀態
False狀態,會影響wait一直處于等待狀態
notify(int數據類型) 制作一串鑰匙
from threading import Condition,Threaddef func(con,i):con.acquire()con.wait()print('在第%s個循環'% i)con.release()con = Condition()
for i in range(10):Thread(target=func,args=(con,i)).start()
while True:num = int(input('>>>'))con.acquire()con.notify(num)con.release()
條件

定時器

from threading import Timer
import time
def func():print('時間同步')while True:Timer(2,func).start()time.sleep(2)
定時器

隊列

# queue
# 隊列的特點:先進先出
# import queue
# q = queue.Queue()
# q.put()
# q.get()
# q.put_nowait()
# q.get_nowait()# 棧     先進后出
# import queue
# q = queue.LifoQueue()
# q.put(1)
#
# q.put(2)
# q.put(3)
# print(q.get())# 優先級隊列     數值越低優先級越高,優先級一樣按照ASCII碼排
# import queue
# q = queue.PriorityQueue()
# q.put((20,'a'))
# q.put((10,'b'))
# q.put((40,'c'))
# q.put((2,'e'))
# q.put((2,'d'))
# print(q.get())
三種隊列

線程池

from concurrent.futures import ThreadPoolExecutor
import time
def func(n):time.sleep(2)print(n)return n*n
def call_back(m):print('結果是:',m.result())tpool = ThreadPoolExecutor(max_workers=5)   # 默認 不要超過cpu個數*5
for i in range(20):t = tpool.submit(func,i).add_done_callback(call_back)# tpool.map(func,range(20))
# t_lst = []
# for i in range(20):
#     t = tpool.submit(func,i)
#     t_lst.append(t)
# # tpool.shutdown()    #close+join
# print('主線程')
# for t in t_lst:print('****',t.result())# 起進程池的話和線程池一模一樣,改個名字就可以了
線程池

?

轉載于:https://www.cnblogs.com/Mr-Feng/p/10901378.html

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

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

相關文章

React中級學習(第一天)

Props深入 children 作用 : 獲取組件標簽的 子節點獲取方式 : this.props.children <App>此處的內容&#xff0c;就是組件的 children&#xff0c;將來通過組件的 props.children 就可以獲取到這些子節點了 </App>props 校驗 作用&#xff1a;規定組件props的類…

iOS 正則表達式判斷純數字以及匹配11位手機號碼

1用正則表達式 //是否是純數字(BOOL)isNumText:(NSString *)str{NSString * regex "(/^[0-9]*$/)";NSPredicate * pred [NSPredicate predicateWithFormat:"SELF MATCHES %", regex];BOOL isMatch [pred evaluateWithObject:st…

Elasticsearch集成ik分詞器

1、插件地址https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.0.0/elasticsearch-analysis-ik-7.0.0.zip 2、找到對應版本的插件通過 http://192.168.1.8:9200查看ES的版本&#xff0c;找到對應的IK分詞插件 下載與之對應的版本https://github.com/me…

React中級學習(第二天)

JSX 語法的轉化過程 (了解) 演示 : babel中文網試一試 let h1 JSX 僅僅是createElement() 方法的語法糖 (簡化語法)JSX 語法 被 babel/preset-react 插件編譯為 createElement() 方法React 元素&#xff1a;是一個對象&#xff0c;用來描述你希望在屏幕上看到的內容React 元素…

【】MTCNN基于NCNN的測試過程

前言 操作過程 NCNN: https://github.com/Tencent/ncnn/wiki/how-to-build#build-for-linux-x86; vector初始化&#xff1a;int num[4] { 1, 4, 3, 2 }; int numLength sizeof(num) / sizeof(num[0]); vector<int> nums(num, num numLength); //使用數組初始化向量 Q&…

iOS NSTextAttachment - 圖文混排

蘋果在iOS7中推出了一個新的類NSTextAttachment&#xff0c;它是做圖文混排的利器&#xff0c;本文就是用這個類&#xff0c;只用50行代碼實現文字與表情混排&#xff0c;當然也可以實現段落中的圖文混排。 首先說一下文字和表情的混排&#xff1a; 先來做點兒準備工作&#…

vuex的結構有哪些參數?

查看參考地址&#xff1a; https://vuex.vuejs.org/zh/ vuex 狀態管理模式&#xff0c;相當于數據的中間商 注意&#xff1a; 為相同 屬性有&#xff1a; 1.State vue中的data —> 存放數據 2.Getter vue中的計算屬性computed —>將已有的數據進行計算再次利用 3.…

百煉OJ - 1004 - 財務管理

題目鏈接&#xff1a;http://bailian.openjudge.cn/practice/1004/ 思路 求和取平均。。。 #include <stdio.h>int main() {float sum0,a;for(int i0;i<12;i){scanf("%f",&a);sum a;}printf("$%.2f\n",sum/12);return 0; } 轉載于:https://w…

iOS 自定義Cell按鈕的點擊代理事件

在實際開發工作中&#xff0c;我們經常會在自定義的Cell中布局一些按鈕&#xff0c;并且很多時候我們會在點擊這個按鈕的時候使我們的UItableviewController跳轉到下一界面&#xff0c;有的可能還要傳值。那么如何使我們的控制器能夠獲知我們按下了cell的按鈕呢&#xff1f;毫無…

Google 開源技術protobuf 簡介與樣例

今天來介紹一下“Protocol Buffers ”&#xff08;以下簡稱protobuf&#xff09;這個玩意兒。本來俺在構思“生產者/消費者模式 ”系列的下一個帖子&#xff1a;關于生產者和消費者之間的數據傳輸格式。由于里面扯到了protobuf&#xff0c;想想干脆單獨開一個帖子算了。 ★prot…

VUE全局導航守衛、 請求、響應攔截器 的設置

文件設置參考地址&#xff1a;https://gitee.com/wang_yu5201314/headlines__news/tree/master/%E9%A1%B9%E7%9B%AE%E6%BA%90%E7%A0%81%E6%96%87%E4%BB%B6/src 文件夾 Router 文件夾 index.js 中設置 全局導航守衛 文件 mian.js 中設置 請求、響應攔截器 設置 請求、響應攔截器…

JRE System Library和 Referenced Libraries 的區別和來源

JRE System Library 安裝jdk后&#xff0c;會有個目錄叫做jrejre目錄是核心類庫&#xff0c;目錄中裝的是類庫文件jre System Library顧名思義就表示系統類庫文件 Referenced Libraries referenced libraries放的是你引用的jar包&#xff0c;這個不需要自己創建的&#xff0c;你…

ByteArray、16進制、字符串之間的轉換

ByteArray、16進制、字符串之間的轉換&#xff1a; package fengzi.convert {import flash.utils.ByteArray;public class ByteArrayTranslated{/**** 通過hax數據返回ByteArray* param hax 格式 "AA5A000100FF"***/public static functi…

js - (初中級)常見筆試面試題

1.用 js 實現一個深拷貝 2.用 js 寫一個數組去重 3. 用 js 對字符串進行反轉 4. 用 js 請求范圍內的質數個數 5.用 js 求數組中出現最多的數及其出現次數

iOS 支付寶SDK接入詳解

一&#xff0c;在支付寶開放平臺下載支付寶SDK&#xff08;https://openhome.alipay.com/platform/document.htm#down&#xff09; https://doc.open.alipay.com/doc2/detail.htm?spma219a.7629140.0.0.HpDuWo&treeId54&articleId104509&docType1 二&#xff0c;添…

面試基本知識點

文章目錄面-什么是SEO面 - cookie / localstorage / sessionstorage的區別面 - promise面試題面 - 柯里化函數面 - 函數節流面 - 函數防抖HTML / CSS 知識點1、講講盒模型&#xff08;螞蟻金服 2019.03 招行信用卡 2019.04 美團 作業幫&#xff09;2、根據盒模型解釋邊距重疊&a…

Redis 熱點key

壓測報redis 熱點問題 熱點問題概述 產生原因 熱點問題產生的原因大致有以下兩種&#xff1a; 用戶消費的數據遠大于生產的數據&#xff08;熱賣商品、熱點新聞、熱點評論、明星直播&#xff09;。 在日常工作生活中一些突發的的事件&#xff0c;例如&#xff1a;雙十一期間某些…

移動IM開發那些事:技術選型和常見問題

最近在做一個iOS IM SDK&#xff0c;在內部試用的階段&#xff0c;不斷有兄弟部門或者合作伙伴過來問各種技術細節&#xff0c;所以統一寫一篇文章記錄&#xff0c;統一介紹下一個IM APP的方方面面&#xff0c;包括技術選型(包括通訊方式,網絡連接方式,協議選擇)和常見問題。 …

webstrom打開通過頂部瀏覽器打開網頁,被跳轉到默認主頁

重新開始工作啦&#xff0c;希望以后認真一點&#xff0c;并把遇到的問題都記錄下來&#xff0c;雖然是小小白&#xff0c;但能無意間幫助到別人就更開心了呀 通過webstrom打開本地的文件時&#xff0c;發現跳轉到了默認主頁上&#xff0c;吐槽下&#xff0c;有些主頁真的超級流…

mockjs(接口服務代理)

mock官網&#xff1a;http://mockjs.com/ 一、搭建一個練習項目 1.利用vue的項目腳手架進行搭建 命令&#xff1a; vue create mock-demo 截圖&#xff1a; 2.安裝相關的依賴 命令&#xff1a; #使用 axios 發送 ajax npm install axios --save #使用 mock.js 產生隨機數據…