进程是资源分配的基本单位。
线程是程序执行的最小单位。
接下来以一段python脚本来演示一下多线程是如何去进行编码操作的,学会这个之后,就可以改进之前的脚本,将nmap的端口扫描工具改成多线程执行,提升效率。并且,在以后执行用例的时候,说不定也会需要用到这个技术。
Python中多线程编程的代码演示:
import threading import time def say_hello(msg): print(f'hello,我是:{msg}') time.sleep(2) start_time = time.time() # 1、创建线程 ''' target: 传可调用对象名字,一般是需要执行的函数名,默认为None args: 元组类型的参数,一般为target对象里面调用时的传参,默认为() ''' t1 = threading.Thread(target=say_hello, args=('a',)) t2 = threading.Thread(target=say_hello, args=('b',)) # 2、启动线程 t1.start() t2.start() # 3、join所完成的工作就是线程同步,即主线程任务结束之后,进入阻塞状态,一直等待其他的子线程执行结束之后,主线程再终止 t1.join() t2.join() end_time = time.time() print(f'耗时:{end_time-start_time}')
以上代码运行后,打印出来的时间在2点零几秒: