多线程threading类
为什么要用多线程呢,有多进程不就可以实现多任务编程了吗?
试想一下当我们用QQ和朋友聊天的时候,多线程相当于打开多个窗口与多个好友同时进行聊天。
而多进程相当于要在一个电脑上登录多个QQ程序进行聊天,一个QQ进程与一个好友聊天。
(好像一个电脑不能登录多个微信^ _^ )
import time
import threading
def sing ( ) :
for i in range ( 3 ) :
print ( "唱歌..." )
time. sleep( 0.5 )
def dance ( ) :
for i in range ( 3 ) :
print ( "跳舞..." )
time. sleep( 0.5 )
if __name__ == '__main__' :
sing_threading= threading. Thread( target= sing)
dance_threading = threading. Thread( target= dance)
sing_threading. start( )
dance_threading. start( )
argv
kwargv
sing_threading= threading. Thread( target= sing, daemon= True )
sing_threading. setDaemon( True )
多线程之间执行是无序的
import os
import threading
def copy_file ( file_name, source_dir, dest_dir) :
source_path = source_dir + '\\' + file_name
dest_path = dest_dir + '\\' + file_name
with open ( source_path, 'rb' ) as source_file:
with open ( dest_path, 'wb' ) as dest_file:
while True :
data = source_file. read( 1024 )
if data:
dest_file. write( data)
else :
break
if __name__ == '__main__' :
source_dir = r'E:\学习\现代软件工程'
dest_dir= r'E:小滕'
try :
os. mkdir( dest_dir)
except :
print ( "目标文件夹已经存在" )
file_list = os. listdir( source_dir)
for file_name in file_list:
sub_thread = threading. Thread( target= copy_file, args= ( file_name, source_dir, dest_dir) )
sub_thread. start( )