新手!!求见谅!!望多指点

由于工作原因,试用期需要学习python,因为运维工作全都是由python完成,幸好有点python基础,知道什么是列表,元组,字符,字典什么的,要不然死翘翘的。

创建多线程主要的步骤有:

1、创建一个函数,这个函数是多线程需要多次运行的内容

2、利用for循环生成对应函数的多个成品(就是说这个函数已经赋予了需要的参数了,直接运行就可以的了)

3、利用for循环开始执行函数

4、利用for循环使主程序挂起,等待子进程完成后再执行其他动作

--------------------以下是一个事例,用于向对应的不同IP地址同时传输文件,当然,这个没有在生产环境上测试过,只是在测试机做了测试

#!/usr/bin/pythonimport time,threading,sys,oscontrol_thread=threading.Semaphore(10)	#控制一次能够运行多少的线程if len(sys.argv) != 2:	print 'error'	sys.exit(10)		def READY(IP):			#这里,就是要运行的程序了,相当于说明的第一点	IP=IP.strip()	if control_thread.acquire():		try:			assert 0 != os.system('/usr/bin/rsync -az /opt/test %s:/var/tmp' % (IP))		except:			print IP.strip(),threading.currentThread().getName(),'send fail'		else:			print IP.strip(),threading.currentThread().getName(),'SUCCESS'		finally:			control_thread.release()						def ACTION():		FILE=sys.argv[1]		X=[]			for i in open(FILE):		#多次调用该函数,让X成为一个将要操作的列表,相当于说明的第二点		T=threading.Thread(target=READY,args=(i,))		X.append(T)				for i in range(len(X)):		#开始执行,相当于说明的第三点		X[i].start()			for i in range(len(X)):		#等待子进程结束才执行下面的动作,相当于说明的第四点		X[i].join(60)		print 'start time: ',time.ctime(),'\n'ACTION()print '\n','end time: ',time.ctime(),'\n'