
课程咨询: 400-996-5531
投诉建议: 400-111-8989
认真做教育 专心促就业
多线程编程开发是目前大多数软件开发程序员都会学习和应用的一种编程技术,而本文我们就通过案例分析来简单了解一下,python开发多线程编程注意事项。
一:多线程写法可以让某些程序更好写
怎么理解呢?
如果要解决一个需要同时维护多种状态的程序,用单线程是实现是很困难的。
比如要检索一个文本文件中的数据,为了提高检索效率,可以将文件分成小段的来处理,先在那段中找到了,就结束处理过程。
用单线程的话,很难实现同时兼顾多个分段的情况,只能顺序,或者用二分法执行检索任务。
而采用多线程,可以将每个分段交给每个线程,会轮流执行,相当于同时推荐检索任务,处理起来,效率会比顺序查找大大提高。
二:处理阻塞型I/O任务效率更高
阻塞型I/O的意思是,当系统需要与文件系统(也包括网络和终端显示)交互时,由于文件系统相比于CPU的处理速度慢得多,所以程序会被设置为阻塞状态,即,不再被分配计算资源。
直到文件系统的结果返回,才会被激活,将有机会再次被分配计算资源。
也就是说,处于阻塞状态的程序,会一直等着。
那么如果一个程序是需要不断地从文件系统读取数据,处理后在写入,单线程的话就需要等等读取后,才能处理,等待处理完才能写入,于是处理过程就成了一个个的等待。
而用多线程,当一个处理过程被阻塞之后,就会立即被GIL切走,将计算资源分配给其他可以执行的过程,从而提示执行效率。
有了这两个特性,就说明Python的多线程并非一无是处,如果能根据情况编写好,效率会大大提高,只不过对于计算密集型的任务,多线程特性爱莫能助。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。