日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python的threading库_python标准库介绍——31 threading 模块详解

發(fā)布時(shí)間:2024/1/23 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的threading库_python标准库介绍——31 threading 模块详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

threading 模塊

(可選) ``threading`` 模塊為線程提供了一個(gè)高級接口, 如 [Example 3-1 #eg-3-1] 所示.

它源自 Java 的線程實(shí)現(xiàn). 和低級的 ``thread`` 模塊相同, 只有你在編譯解釋器時(shí)打開了線程支持才可以使用它 .

你只需要繼承 //Thread// 類, 定義好 ``run`` 方法, 就可以創(chuàng)建一 個(gè)新的線程.

使用時(shí)首先創(chuàng)建該類的一個(gè)或多個(gè)實(shí)例, 然后調(diào)用 ``start`` 方法. 這樣每個(gè)實(shí)例的

``run`` 方法都會運(yùn)行在它自的線程里.

====Example 3-1. 使用 threading 模塊====[eg-3-1]

```

File: threading-example-1.py

import threading

import time, random

class Counter:

def _ _init_ _(self):

self.lock = threading.Lock()

self.value = 0

def increment(self):

self.lock.acquire() # critical section

self.value = value = self.value + 1

self.lock.release()

return value

counter = Counter()

class Worker(threading.Thread):

def run(self):

for i in range(10):

# pretend we're doing something that takes 10?00 ms

value = counter.increment() # increment global counter

time.sleep(random.randint(10, 100) / 1000.0)

print self.getName(), "-- task", i, "finished", value

#

# try it

for i in range(10):

Worker().start() # start a worker

*B*Thread-1 -- task 0 finished 1

Thread-3 -- task 0 finished 3

Thread-7 -- task 0 finished 8

Thread-1 -- task 1 finished 7

Thread-4 -- task 0 Thread-5 -- task 0 finished 4

finished 5

Thread-8 -- task 0 Thread-6 -- task 0 finished 9

finished 6

...

Thread-6 -- task 9 finished 98

Thread-4 -- task 9 finished 99

Thread-9 -- task 9 finished 100*b*

```

[Example 3-1 #eg-3-1] 使用了 //Lock// 對象來在全局 //Counter// 對象里創(chuàng)建臨界區(qū)

(critical section). 如果刪除了 ``acquire`` 和 ``release`` 語句, 那么 ``Counter`` 很可能不會到達(dá) 100.

python標(biāo)準(zhǔn)庫介紹——12 time 模塊詳解

==time 模塊== ``time`` 模塊提供了一些處理日期和一天內(nèi)時(shí)間的函數(shù). 它是建立在 C 運(yùn)行時(shí)庫的簡單封裝. 給定的日期和時(shí)間可以被表示為浮點(diǎn)型(從參考時(shí)間, 通常是 1970.1.1 ...

python標(biāo)準(zhǔn)庫介紹——27 random 模塊詳解

==random 模塊== "Anyone who considers arithmetical methods of producing random digits is, of cour ...

python標(biāo)準(zhǔn)庫介紹——10 sys 模塊詳解

==sys 模塊== ``sys`` 模塊提供了許多函數(shù)和變量來處理 Python 運(yùn)行時(shí)環(huán)境的不同部分. === 處理命令行參數(shù)=== 在解釋器啟動后, ``argv`` 列表包含了傳遞給腳本的所有 ...

python標(biāo)準(zhǔn)庫介紹——33 thread 模塊詳解

?==thread 模塊== (可選) ``thread`` 模塊提為線程提供了一個(gè)低級 (low_level) 的接口, 如 [Example 3-6 #eg-3-6] 所示. 只有你在編譯解釋器時(shí) ...

python標(biāo)準(zhǔn)庫介紹——30 code 模塊詳解

==code 模塊== ``code`` 模塊提供了一些用于模擬標(biāo)準(zhǔn)交互解釋器行為的函數(shù). ``compile_command`` 與內(nèi)建 ``compile`` 函數(shù)行為相似, 但它會通過測試來保證 ...

python標(biāo)準(zhǔn)庫介紹——8 operator 模塊詳解

==operator 模塊== ``operator`` 模塊為 Python 提供了一個(gè) "功能性" 的標(biāo)準(zhǔn)操作符接口. 當(dāng)使用 ``map`` 以及 ``filter`` 一類 ...

python標(biāo)準(zhǔn)庫介紹——36 popen2 模塊詳解

==popen2 模塊== ``popen2`` 模塊允許你執(zhí)行外部命令, 并通過流來分別訪問它的 ``stdin`` 和 ``stdout`` ( 可能還有 ``stderr`` ). 在 pyth ...

python標(biāo)準(zhǔn)庫介紹——32 Queue 模塊詳解

Queue 模塊 ``Queue`` 模塊提供了一個(gè)線程安全的隊(duì)列 (queue) 實(shí)現(xiàn), 如 [Example 3-2 #eg-3-2] 所示. 你可以通過它在多個(gè)線程里安全訪問同個(gè)對象. ==== ...

python標(biāo)準(zhǔn)庫介紹——23 UserString 模塊詳解

==UserString 模塊== (2.0 新增) ``UserString`` 模塊包含兩個(gè)類, //UserString// 和 //MutableString// . 前者是對標(biāo)準(zhǔn)字符串類型的 ...

隨機(jī)推薦

上傳文件fileupload

文件上傳: 需要使用控件-fileupload 1.如何判斷是否選中文件??FileUpload.FileName - ?選中文件的文件名,如果長度不大于0,那么說明沒選中任何文件?js - f.va ...

XStream的例子

寫個(gè)小例子,方便以后復(fù)習(xí): 1 package com.demo; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 impor ...

【題解】【BT】【Leetcode】Populating Next Right Pointers in Each Node

Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...

C語言系列之printf和%12d的用法(三)

看C語言程序的時(shí)候,往往會遇到printf函數(shù)輸出,在此,我想總結(jié)一下printf的一般用法以及%12d是什么意思 printf函數(shù)的一般格式為 printf(格式控制,輸出列表): 例如: prin ...

8_python連接數(shù)據(jù)庫

如何用python操作數(shù)據(jù)庫? -- 導(dǎo)入pymysql ? ? ? ? ? ? ? ? ? ?-- import pymysql -- 創(chuàng)建連接 ? ? ? ? ? ? ? ? ? ? ? ? ?- ...

C++常見筆試題

1.實(shí)現(xiàn)字符串轉(zhuǎn)整數(shù)的函數(shù):int atoi(const char *nptr) 2.實(shí)現(xiàn)數(shù)組折半查找:int BinarySearch(int a[],int len, int key) 3.實(shí)現(xiàn)字 ...

單調(diào)棧的運(yùn)用-bzoj1012(代碼轉(zhuǎn)載-http://hzwer.com/1130.html)

Description 現(xiàn)在請求你維護(hù)一個(gè)數(shù)列,要求提供以下兩種操作: . 查詢操作.語法:Q L 功能:查詢當(dāng)前數(shù)列中末尾L個(gè)數(shù)中的最大的數(shù),并輸出這個(gè)數(shù)的值.限制:L不超過當(dāng)前數(shù)列的長度. . 插 ...

IDEA導(dǎo)出jar包后運(yùn)行報(bào)錯(cuò) 找不到或無法加載主類

開發(fā)工具:IDEA16 運(yùn)行環(huán)境:ubuntu 問題:根據(jù)網(wǎng)上的Idea導(dǎo)出jar包的方法,將我的項(xiàng)目導(dǎo)出jar包后運(yùn)行報(bào)錯(cuò):找不到或無法加載主類. ? 為了找到這個(gè)原因,我重新搭建了一個(gè)測試?yán)?在 ...

Business Unit Helper

using System; using System.Linq; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Sy ...

總結(jié)

以上是生活随笔為你收集整理的python的threading库_python标准库介绍——31 threading 模块详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。