python中的多线程就是在一个进程中存在着多个线程,在线程中,所有的线程都是共享资源的,线程之间的数据通信很简单。但是python仅支持一个线程的运行,因为python中存在一个全局解释器锁GIL(global interpreter lock),正是这个锁能保证同一时刻只有一个线程在运行,所以多线程依旧像是单线程的运行。
GIL无疑就是一把对多线程有影响的全局锁,解决它对多线程的影响,不单单是释放GIL这么简单。GIL使得对象模型都是可以并发访问。GIL全局解释器锁解决多线程之间数据完整性和状态同步的问题,但是这个锁在同一时刻只有一个线程在运行,所以在多核的情况下也只能发挥出单核的性能,多线程依旧像是单线程的运行。下面用一个单线程和多线程对比实例给大家看一下结果。
执行结果:
total time of single is: 0.04100227355957031
total time of multi is: 0.019001245498657227
python多线程编程是为了并行运行相互独立的子任务,大幅度提高整个任务的效率,比如异步任务、运算密集型任务等。线程有开始,顺序执行和结束三个阶段。python多线程编程中常用方法有:start()方法、run()方法、join()方法、isAlive()方法、getName()方法、setName()方法、isDaemon()方法、setDaemon()方法等。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架微