#!/usr/bin/python3import _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/python3import 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...