python多執行緒初探

2021-08-25 02:44:07 字數 1917 閱讀 6643

#!/usr/bin/python3

import _thread

import time

# 為執行緒定義乙個函式

def print_time(threadname, delay):

count = 0

while count < 5:

time.sleep(delay)

count += 1

print("{}: {}".format(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: 無法啟動執行緒")

while 1:

pass

#!/usr/bin/python3

import threading

import time

exitflag = 0

class mythread(threading.thread):

def __init__(self, threadid, name, counter):

threading.thread.__init__(self)

self.threadid = threadid

self.name = name

self.counter = counter

def run(self):

print("start thread: " + self.name)

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

print("exit thread: " + self.name)

def print_time(threadname, delay, counter):

while counter:

if exitflag:

threadname.exit()

time.sleep(delay)

print("{}: {}".format(threadname, time.ctime(time.time())))

counter -= 1

# 建立新執行緒

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

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

# 開啟新執行緒

thread1.start()

thread2.start()

thread1.join()

thread2.join()

print("退出主線程")

"""threading.currentthread(): 返回當前的執行緒變數。

threading.enumerate(): 返回乙個包含正在執行的執行緒的list。正在執行指執行緒啟動後、結束前,不包括啟動前和終止後的執行緒。

threading.activecount(): 返回正在執行的執行緒數量,與len(threading.enumerate())有相同的結果。

除了使用方法外,執行緒模組同樣提供了thread類來處理執行緒,thread類提供了以下方法:

run(): 用以表示執行緒活動的方法。

start():啟動執行緒活動。

join([time]): 等待至執行緒中止。這阻塞呼叫執行緒直至執行緒的join() 方法被呼叫中止-正常退出或者丟擲未處理的異常-或者是可選的超時發生。

isalive(): 返回執行緒是否活動的。

getname(): 返回執行緒名。

setname(): 設定執行緒名。

"""

多執行緒初探

多執行緒程式設計一直沒做過,沒有這方面的需求 自己先學習一下多執行緒的基礎,弄點小例子試驗.建立執行緒有兩種方法 繼承thread類和實現runnable介面。color red 一 繼承 thread 類,覆蓋方法 run color 在建立的 thread 類的子類中重寫 run 加入執行緒所要...

Python爬蟲 初探多執行緒爬蟲

上篇,我們已經建立了乙個基本的爬蟲,用來抓取動態網頁的資訊。經過測試,爬蟲的速度太慢,我們需要改進。這篇我會介紹如何實現乙個多執行緒的python爬蟲來提高抓取網頁的效率。很多人都說因為python的gil gil規定每個時刻只能有乙個執行緒訪問python虛擬機器 限制,不應該用多執行緒,而應該用...

Java多執行緒初探

單執行緒的程式只有乙個順序執行流。多個順序流之間互不干擾。定義thread類的子類,重寫該類的run 方法。建立thread子類的例項。呼叫執行緒物件的start 方法來啟動多執行緒。package ch16 created by jiqing on 2017 1 2.public class fi...