色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Python run()函數(shù)和start()函數(shù)的比較和差別介紹

瀏覽:16日期:2022-07-26 14:49:36

run() 方法并不啟動一個新線程,就是在主線程中調(diào)用了一個普通函數(shù)而已。

start() 方法是啟動一個子線程,線程名就是自己定義的name。

因此,如果你想啟動多線程,就必須使用start()方法。

請看實(shí)例:(源代碼)

1 使用run()方法啟動線程,它打印的線程名是MainThread,也就是主線程。

import threading,timedef worker():count = 1while True:if count >= 4:breaktime.sleep(1)count += 1print(“thread name = {}”.format(threading.current_thread().name))print(“Start Test run()”)t1 = threading.Thread(target=worker, name=“MyTryThread”)t1.run()print(“run() test end”)

運(yùn)行結(jié)果:

Start Test run()thread name = MainThreadthread name = MainThreadthread name = MainThreadrun() test end

2 使用start()方法啟動的線程名是我們定義線程對象時設(shè)置的name='MyThread'的值,如果沒有設(shè)置name參數(shù)值,則會打印系統(tǒng)分配的Thread-1,Thread-2…這樣的名稱。

import threading,timedef worker():count = 1while True:if count >= 4:breaktime.sleep(2)count += 1print(“thread name = {}”.format(threading.current_thread().name)) # 當(dāng)前線程名print(“Start Test start()”)t = threading.Thread(target=worker, name=“MyTryThread”)t.start()t.join()print(“start() test end”)

運(yùn)行結(jié)果:

Start Test start()thread name = MyTryThreadthread name = MyTryThreadthread name = MyTryThreadstart() test end

3 兩個子線程都用run()方法啟動,但卻是先運(yùn)行t1.run(),運(yùn)行完之后才按順序運(yùn)行t2.run(),兩個線程都工作在主線程,沒有啟動新線程,thread ID都是一樣的,因此,run()方法僅僅是普通函數(shù)調(diào)用。

import threading,timedef worker():count = 1while True:if count >= 4:breaktime.sleep(2)count += 1print(“thread name = {}, thread id = {}”.format(threading.current_thread().name,threading.current_thread().ident))print(“Start Test run()”)t1 = threading.Thread(target=worker, name=“t1”)t2 = threading.Thread(target=worker, name=‘t2’)t1.run()t2.run()print(“run() test end”)

運(yùn)行結(jié)果:

Start Test run()thread name = MainThread, thread id = 3920thread name = MainThread, thread id = 3920thread name = MainThread, thread id = 3920thread name = MainThread, thread id = 3920thread name = MainThread, thread id = 3920thread name = MainThread, thread id = 3920run() test end

4 使用start()方法啟動了兩個新的子線程并交替運(yùn)行,每個子進(jìn)程ID也不同。

import threading,timedef worker():count = 1while True:if count >= 4:breaktime.sleep(2)count += 1print(“thread name = {}, thread id = {}”.format(threading.current_thread().name,threading.current_thread().ident))print(“Start Test start()”)t1 = threading.Thread(target=worker, name=“MyTryThread1”)t2 = threading.Thread(target=worker, name=“MyTryThread2”)t1.start()t2.start()t1.join()t2.join()print(“start() test end”)

運(yùn)行結(jié)果:

Start Test start()thread name = MyTryThread1, thread id = 4628thread name = MyTryThread2, thread id = 872thread name = MyTryThread1, thread id = 4628thread name = MyTryThread2, thread id = 872thread name = MyTryThread1, thread id = 4628thread name = MyTryThread2, thread id = 872start() test end

補(bǔ)充知識:python 文件操作常用輪子

path

注意: 對于任何需要處理文件名的問題,都應(yīng)該使用os.path模塊而不是字符串操作。兩個原因,os.path能夠處理移植性問題,如windows,linux。 另一個原因,不要重復(fù)造輪子

獲取文件名

import osfilename = os.path.basename(filepath)print(filename)

獲取文件當(dāng)前文件夾目錄

filename = os.path.dirname(filepath)

同時獲取文件夾和文件名

dirname, filename = os.path.split(filepath)

split 文件擴(kuò)展名

path_without_ext, ext = os.path.splitext(filepath)# e.g ’hello/world/read.txt’ then# path_without_ext = hello/world/read, ext = .txt

遍歷文件夾下所有文件方法

import glob

pyfiles = glob.glob(’*.py’)

or

def getAllFiles(filePath, filelist=[]): for root, dirs, files in os.walk(filePath): for f in files: filelist.append(os.path.join(root, f)) print(f) return filelist

判斷是否為文件 file

os.path.isfile(’/etc/passwd’)

判斷是否為文件夾 folder

os.path.isdir(’/etc/passwd’)

是否是軟鏈接

os.path.islink(’/usr/local/bin/python3’)

軟鏈接真正指向的是

os.path.realpath(’/usr/local/bin/python3’)

size

獲取文件大小

import ossize = os.path.getsize(filepath)print(size)

獲取文件夾大小

import os def getFileSize(filePath, size=0): for root, dirs, files in os.walk(filePath): for f in files: size += os.path.getsize(os.path.join(root, f)) print(f) return size print(getFileSize('.'))

time

import timet1 = os.path.gettime(’/etc/passwd’)# t1 1272478234.0t2 = time.ctime(t1)# t2 ’Wed Apr 28 12:10:05 2010’

以上這篇Python run()函數(shù)和start()函數(shù)的比較和差別介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 高清成人爽a毛片免费网站 高清大学生毛片一级 | 久久久精品成人免费看 | 97超级碰碰碰免费公开在线观看 | 久草视频在线资源站 | 欧美日韩国产综合一区二区三区 | 日韩精品福利视频一区二区三区 | 草草影院www色极品欧美 | 精品国产一区二区三区久久影院 | 97在线观看视频免费 | 亚洲第一网色综合久久 | 国产亚洲美女精品久久 | 国产精品亚洲二区 | 久久免费视频8 | 久久久久久国产视频 | 国产成人精品亚洲日本语音 | 国产成人精品三级91在线影院 | 久久久久亚洲国产 | a毛片成人免费全部播放 | 国产在线视频一区 | 香蕉521av网站永久地址 | 日本手机在线视频 | 精品久久成人免费第三区 | 日韩精品小视频 | 国美女福利视频午夜精品 | 黄色毛片子 | 久久综合精品国产一区二区三区 | 亚洲羞羞视频 | 天堂视频在线免费观看 | 激情一区二区三区成人 | 91视频国产91久久久 | 国产欧美一区二区日本加勒比 | 欧美毛片日韩一级在线 | 国产一区二三区 | 欧美综合图片一区二区三区 | 新版天堂资源中文8在线 | 欧美另类 videos黑人极品 | 国产一级一片免费播放刺激 | 国产精品成人免费 | 美女被cao免费看在线看网站 | 国产成人麻豆精品 | 久久久综合久久 |