[发明专利]一种基于python的应用程序多线程运行优化方法在审
申请号: | 201710874653.6 | 申请日: | 2017-09-25 |
公开(公告)号: | CN107577454A | 公开(公告)日: | 2018-01-12 |
发明(设计)人: | 罗为 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/30;G06F8/41;G06F9/50 |
代理公司: | 四川省成都市天策商标专利事务所51213 | 代理人: | 刘兴亮,刘渝 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 python 应用程序 多线程 运行 优化 方法 | ||
技术领域
本发明涉及Windows终端应用安全领域,具体涉及一种基于python的应用程序多线程运行优化方法。
背景技术
Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。Python是交互式语言:这意味着,您可以在一个Python提示符,直接互动执行写你的程序。Python是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。Python是初学者的语言:Python对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到WWW浏览器再到游戏。
Python是由Guido van Rossum在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。Python本身也是由诸多其他语言发展而来的,这包括ABC、 Modula-3、C、C++、Algol-68、SmallTalk、Unix shell和其他的脚本语言等等。像Perl语言一样,Python源代码同样遵循GPL(GNU General Public License)协议。现在Python是由一个核心开发团队在维护,Guido van Rossum仍然占据着至关重要的作用,指导其进展。
在多线程(Multithreaded,MT)编程出现之前,电脑程序的运行由一个执行序列组成,执行序列按顺序在主机的中央处理器CPU中运行。即使整个程序由多个相互独立无关的子任务组成,程序都会顺序执行。
由于并行处理可以大幅度地提升整个任务的效率,故引入多线程编程。
多线程中任务具有以下特点:
(1)这些任务的本质是异步的,需要有多个并发事务;
(2)各个事务的运行顺序可以是不确定的、随机的、不可预测的。
这样的编程任务可以分成多个执行流,每个流都有一个要完成的目标。再根据不同的应用,这些子任务可能都要计算出一个中间结果,用于合并得到最后的结果。
线程(亦称为轻量级进程)跟进程有些相似,不同的是:所有的线程运行在同一个进程中,共享相同的运行环境。它们可以被想象成是在主进程或“主线程”中并行运行的“迷你进程”。
线程有开始,顺序执行和结束三部分。它有一个自己的指令指针,记录自己运行到什么地方。线程的运行可能被抢占(中断)或暂时的被挂起(睡眠),让其他线程运行,这叫做让步。
一个进程中的各个线程之间共享同一片数据空间,所以线程之间可以比进程之间更方便地共享数据以及相互通讯。线程一般都是并发执行的,正是由于这种并行和数据共享的机制使得多个任务的合作变成可能。实际上,在单CPU的系统中,真正的并发是不可能的,每个线程会被安排成每次只运行一小会,然后就把CPU让出来,让其他的线程去运行。在进程的整个运行过程中,每个线程都只做自己的事,在需要的时候跟其他的线程共享运行的结果。当然,这样的共享并不是完全没有危险的。如果多个线程共同访问同一片数据,则由于数据访问的顺序不同,有可能导致数据结果的不一致的问题,即竞态条件(race condition)。同样,大多数线程库都带有一些列的同步原语,来控制线程的执行和数据的访问。另一个需要注意的是由于有的函数会在完成之前阻塞住,在没有特别为多线程做修改的情况下,这种“贪婪”的函数会让CPU的时间分配有所倾斜,导致各个线程分配到的运行时间可能不尽相同,不尽公平。
在使用python编译的Windows系统应用程序中,程序默认是单线程来处理与用户的交互和对后台服务器的响应做出反馈。具体的表现形式为程序只能处理当前的某一种事件,当这些事件不属于耗时操作例如下载或者上传文件至服务器时,用户不会感受到明显的使用问题。但是一旦涉及到耗时、占用计算机资源过大的程序流程时,程序将进入假死状态,只能运行当前需要处理的事件,这个时候由于未开启多线程的功能,对于新的用户输入或者服务器响应,程序将等待当前线程完全处理完毕,即当前线程终止后,才能重新开启线程用于处理接下来的相关流程。这意味着用户只能单一使用应用程序的某种功能,必须对程序设计进一步优化,即为程序加入多线程处理事件的功能。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种可以多线程处理事情的基于python的应用程序多线程运行优化方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710874653.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:汽车用转向梯形臂
- 下一篇:低速纯电动车前驱动桥的副车架总成及前驱动桥