此文程序来自上述来源,对其做了一些注释、测试,谈一谈自己的理解。
多线程,简单从逻辑上理解一下的话可以是多核/多机器/多副本同时运行,对于可并行处理的数据,(理想情况下)4线程可以把效率提高4倍。实际上就线程上的多/并行
而言,其物理实现上是每个线程分时获得要用到的资源,处理器切换很快,看起来就像是并行的,并不是真正意义上的并行。为什么不给每个线程分配足够的资源实现真正的并行呢,因为线程太小,量级不够,为如此小搓的任务调度物理资源得不偿失。那么谁够格来分到真正的资源呢——进程,多进程的话,会尽量基于每个进程足够的资源,来达到更高意义上的并行。但是遇到资源不足或者只运行单点操作(临界资源)的情况时,进程也只能等待。
实例说话
import threading
def thread_job(): # 可以分配给线程的工作(函数)
print('This is an added Thread, number is %s'%threading.current_thread())
def main():
new_thread = threading.Thread(target=thread_job)
# 添加线程,这个线程用来do thread_job
# target属性用来指定该线程要做的工作(一个函数)
new_thread.start() # 这里才算开始,上一句相当于一个声明
if __name__ == '__main__':
main()