Python多執行緒基礎學習

2021-07-15 02:43:25 字數 3291 閱讀 6195

python多執行緒用法:

1.函式式:呼叫thread模組的start_new_thread()方法來建立執行緒,

例如:

thread.start_new_thread(function,args)
–args是函式的引數列表,在python裡用元組表示,如(』args1』,args2……),注意這裡引數必須存在,就算是個無參函式,也要傳遞乙個空元組()

例項:

#!/usr/bin/python

#coding=utf-8

import thread

import time

# 為執行緒定義乙個函式

defprint_time

( threadname, delay):

count = 0

while count < 5:

time.sleep(delay)

count += 1

print

"%s: %s" % ( threadname, time.ctime(time.time()) )

# 建立兩個執行緒

try:

thread.start_new_thread( print_time, ("thread-1", 2, ) )

thread.start_new_thread( print_time, ("thread-2", 4, ) )

except:

print

"error: unable to start thread"

while

1: pass

輸出為:

thread-1: sun

jul 17 16:11

:04 2016

thread-2: sun

jul 17 16:11

:06 2016

thread-1: sun

jul 17 16:11

:06 2016

thread-1: sun

jul 17 16:11

:08 2016

thread-2: sun

jul 17 16:11

:10 2016

thread-1: sun

jul 17 16:11

:10 2016

thread-1: sun

jul 17 16:11

:12 2016

thread-2: sun

jul 17 16:11

:14 2016

thread-2: sun

jul 17 16:11

:18 2016

thread-2: sun

jul 17 16:11

:22 2016

2.繼承類threading.thread,自定義執行緒類,重寫init()和run()方法,

例項:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import threading

import time

exitflag = 0

class

mythread

(threading.thread):

#繼承父類threading.thread

def__init__

(self, threadid, name, counter):

threading.thread.__init__(self)

self.threadid = threadid

self.name = name

self.counter = counter

defrun(self):

#把要執行的**寫到run函式裡面 執行緒在建立後會直接執行run函式

print

"starting " + self.name

print_time(self.name, self.counter, 5)

print

"exiting " + self.name

defprint_time

(threadname, delay, counter):

while counter:

if exitflag:

thread.exit()

time.sleep(delay)

print

"%s: %s" % (threadname, time.ctime(time.time()))

counter -= 1

# 建立新執行緒

thread1 = mythread(1, "thread-1", 1)

thread2 = mythread(2, "thread-2", 2)

# 開啟執行緒

thread1.start()

thread2.start()

print

"exiting main thread"

輸出:

starting

thread-1

starting

thread-2

exiting

main

thread

thread-1: thu

mar 21 09:10

:03 2013

thread-1: thu

mar 21 09:10

:04 2013

thread-2: thu

mar 21 09:10

:04 2013

thread-1: thu

mar 21 09:10

:05 2013

thread-1: thu

mar 21 09:10

:06 2013

thread-2: thu

mar 21 09:10

:06 2013

thread-1: thu

mar 21 09:10

:07 2013

exiting

thread-1

thread-2: thu

mar 21 09:10

:08 2013

thread-2: thu

mar 21 09:10

:10 2013

thread-2: thu

mar 21 09:10

:12 2013

exiting

thread-2

多執行緒 基礎多執行緒學習分享

程序 程式是靜止,其真正執行時的程式才稱之為程序 執行緒 輕量級程序 light weight process 程序與執行緒區別 執行緒的組成 建立執行緒 主要的兩種方式 a 繼承thread類方法 步驟 1.編寫類 繼承thread 2.重寫run方法 3.建立執行緒物件 4.呼叫start方法啟...

Python基礎 多執行緒

多執行緒在程式開發過程中特別重要,我們往往把一些耗時的操作在子執行緒中執行,這就是所謂的多執行緒了。在c 11中,寫了一些關於多執行緒的部落格。python也不例外,當然也要有多執行緒了。python提供了兩個模組來實現多執行緒thread 和threading thread 有一些缺點,在thre...

Python基礎 多執行緒

多工可以由多程序完成,也可以由乙個程序內的多執行緒完成。我們前面提到了程序是由若干執行緒組成的,乙個程序至少有乙個執行緒。由於執行緒是作業系統直接支援的執行單元,因此,高階語言通常都內建多執行緒的支援,python也不例外,並且,python的執行緒是真正的posix thread,而不是模擬出來的...