CN112416584B - 一种进程通信方法、装置、存储介质及移动终端 - Google Patents

一种进程通信方法、装置、存储介质及移动终端 Download PDF

Info

Publication number
CN112416584B
CN112416584B CN202011292054.1A CN202011292054A CN112416584B CN 112416584 B CN112416584 B CN 112416584B CN 202011292054 A CN202011292054 A CN 202011292054A CN 112416584 B CN112416584 B CN 112416584B
Authority
CN
China
Prior art keywords
thread
communication
idle
application process
communication thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011292054.1A
Other languages
English (en)
Other versions
CN112416584A (zh
Inventor
王斌宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
JRD Communication Shenzhen Ltd
Original Assignee
JRD Communication Shenzhen Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by JRD Communication Shenzhen Ltd filed Critical JRD Communication Shenzhen Ltd
Priority to CN202011292054.1A priority Critical patent/CN112416584B/zh
Priority to US18/253,400 priority patent/US20240004714A1/en
Priority to PCT/CN2020/133541 priority patent/WO2022104924A1/zh
Publication of CN112416584A publication Critical patent/CN112416584A/zh
Application granted granted Critical
Publication of CN112416584B publication Critical patent/CN112416584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Telephone Function (AREA)

Abstract

本申请实施例公开了一种进程通信方法、装置、存储介质及移动终端,方法包括:当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;利用所述第一目标通信线程与所述系统进程进行通信。通过在应用进程的线程池中不存在空闲通信线程时创建一目标通信线程,从而避免系统进程无法与应用进程通信的情况,进而避免移动终端冻屏、重启以及卡顿等异常情况发生。

Description

一种进程通信方法、装置、存储介质及移动终端
技术领域
本申请涉及通讯技术领域,具体涉及一种进程通信方法、装置、存储介质及移动终端。
背景技术
安卓操作系统(Android)中,应用与服务间经常需要进行数据传输,一般可以采用进程间通信的方式,例如,可以通过Binder机制进行传输,从而获取对方的数据。
目前,当应用与服务通过Binder机制进行进程间通信时,若在应用进程中的线程均处于工作状态时系统进程请求与应用进程进行通信,则会导致移动终端冻屏、重启以及卡顿等异常情况发生。
发明内容
本申请实施例提供一种进程通信方法,可以避免移动终端冻屏、重启以及卡顿等异常情况发生。
本申请实施例提供一种进程通信方法,包括:
当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;
若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;
利用所述第一目标通信线程与所述系统进程进行通信。
本申请实施例还提供一种进程通信装置,其特征在于,包括:
判断模块,用于当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;
创建模块,用于若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;
通信模块,用于利用所述第一目标通信线程与所述系统进程进行通信。
本申请实施例还提供一种存储介质,存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行如上所述的进程通信方法。
本申请实施例还提供一种移动终端,移动终端包括处理器和存储器,存储器中存储有计算机程序,处理器通过调用存储器中存储的计算机程序,用于执行如上所述的进程通信方法。
本申请实施例提供的进程通信方法,包括:当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;利用所述第一目标通信线程与所述系统进程进行通信。通过在应用进程的线程池中不存在空闲通信线程时创建一目标通信线程,从而避免系统进程无法与应用进程通信的情况,进而避免移动终端冻屏、重启以及卡顿等异常情况发生。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本申请实施例提供的进程通信方法的第一种流程示意图。
图1b为本申请实施例提供的进程间通信的原理示意图。
图2为本申请实施例提供的进程通信方法的第二种流程示意图。
图3为本申请实施例提供的进程通信装置的结构示意图。
图4为本申请实施例提供的移动终端的具体结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1a,图1a为本申请实施例提供的进程通信方法的第一种流程示意图。该进程通信方法,包括:
步骤101、当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程。
其中,系统进程需要与应用进程之间通信可通过Binder机制完成,Binder是Android系统中进程间通讯(IPC)的一种方式,也是Android系统中最重要的特性之一。Android中的四大组件工作流(Activity),服务(Service),广播接收器(Broadcast),内容提供者(ContentProvider),不同的应用程序(App)等都运行在不同的进程中,它是这些进程间通讯的桥梁。正如其名“粘合剂”一样,它把系统中各个组件粘合到了一起,是各个组件的桥梁。
具体的,请参阅图1b,图1b为本申请实施例提供的进程间通信的原理示意图。其中,每个Android的进程,只能运行在自己进程所拥有的虚拟地址空间。举例而言,对应一个4GB的虚拟地址空间,其中3GB是用户空间,1GB是内核空间,当然内核空间的大小是可以通过参数配置调整的。对于用户空间,不同进程之间彼此是不能共享的,而内核空间却是可共享的。应用进程向系统进程进程通信,恰恰是利用进程间可共享的内核内存空间来完成底层通信工作的,应用进程与系统进程往往采用ioctl(一种设备驱动程序中对设备的I/O通道进行管理的函数)等方法跟内核空间的驱动进行交互。
其中,可通过判断系统进程需要通信的应用进程的线程池中每一线程是否处于空闲状态,从而确定线程池中是否存在空闲通信线程。
具体的,可通过确定进程对应的线程数量上限确定是否为系统进程,由于系统进程中线程的数量上限可以为32,其他进程中线程的数量上限为16,因此若确定出进程中线程的数量上限为32,则可确定该进程为系统进程。
步骤102、若应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程。
其中,若应用进程的线程池中的所有通信线程均处于工作状态或通信状态,则可以确定线程池中不存在空闲通信线程,由于系统进程需要与应用进程进行通信,因此可创建一目标通信线程,从而实现系统进程与应用进程之间的通信。
步骤103、利用第一目标通信线程与系统进程进行通信。
当由步骤102创建出第一目标通信线程后,则可利用该第一目标通信线程与系统进程进行通信。
在一些实施方式中,所述利用所述第一目标通信线程与所述系统进程进行通信之后,还包括:
(1)当系统进程需要与应用进程再次通信时,再次判断所述应用进程的线程池中是否存在空闲通信线程;
(2)若所述应用进程的线程池中存在空闲通信线程,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第一预设数量;
(3)若所述应用进程的线程池中空闲通信线程的数量不小于第一预设数量,则在所述第一目标通信线程与所述系统进程通信完成后销毁所述第一目标通信线程;
(4)利用任一所述空闲通信线程与需要再次通信的系统进程进行通信。
其中,若系统进程再次请求与应用进程进行通信,由于在当前时间点不知道应用进程中线程池内是否存在空闲通信线程,因此还需重新判断一次是否存在空闲通信线程。并且为了避免空闲通信线程的数量较少导致的应用进程本身的业务无法被线程处理,因此还需判断空闲通信线程的数量是否不小于第一预设数量,例如5个。若不小于第一预设数量,则可以在第一目标通信线程上系统进程与应用进程通信完毕后销毁该第一目标通信线程。并利用任一一个空闲通信线程与需要再次通信的系统进程进行通信。
在一些实施方式中,所述判断所述应用进程的线程池中空闲通信线程的数量是否不小于第一预设数量之后,还包括:
(1)若所述应用进程的线程池中空闲通信线程的数量小于第一预设数量,则判断所述第一目标通信线程是否处于空闲状态;
(2)若所述第一目标通信线程处于空闲状态,则利用所述第一目标通信线程与需要再次通信的系统进程进行通信。
其中,若线程池中空闲通信线程的数量小于第一预设数量,则确定当前时间点第一目标通信线程是否处于空闲状态,若处于空闲状态,则优先利用第一目标通信线程进行通信。
在一些实施方式中,所述判断所述第一目标通信线程是否处于空闲状态之后,还包括:
(1.1)若所述第一目标通信线程不处于空闲状态,则创建第二目标通信线程;
(1.2)利用第二目标通信线程与需要再次通信的系统进程进行通信。
其中,若第一目标通信线程不处于空闲状态,则需要再次创建一第二目标通信线程,并利用该第二目标通信线程与需要再次通信的系统进程进行通信。
在一些实施方式中,所述判断所述第一目标通信线程是否处于空闲状态之后,还包括:
(1.1)若所述第一目标通信线程不处于空闲状态,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第二预设数量,所述第二预设数量小于所述第一预设数量;
(1.2)若所述应用进程的线程池中空闲通信线程的数量不小于第二预设数量,则利用任一空闲通信线程与需要再次通信的系统进程进行通信。
其中,若检测出当前时间点的第一目标通信线程不处于空闲状态,则再去检测线程池中的空闲通信线程的数量是否不小于第二预设数量,其中第二预设数量一般为2或3。设定第二预设数量的目的在于为了避免系统进程的通信影响了应用进程本身的业务处理,因此会预留第二预设数量的线程以供应用进程自身使用,因此若线程池中空闲通信线程的数量不小于第二预设数量,则利用任一空闲通信线程进行通信。
在一些实施方式中,所述判断所述应用进程的线程池中空闲通信线程的数量是否不小于第二预设数量之后,还包括:
(1.1)若所述应用进程的线程池中空闲通信线程的数量小于第二预设数量,则创建第二目标通信线程;
(1.2)利用所述第二目标通信线程与需要再次通信的系统进程进行通信。
其中,若线程池中空闲通信线程的数量小于第二预设数量,也即如果利用空闲通信线程实现系统进程与应用进程的话,会导致应用进程的自身业务无法处理,因此禁止利用空闲通信线程与系统进程进行通信。而为了保证系统进程的正常通信,可继续创建一第二目标通信线程,利用第二目标通信线程与系统进程进行通信。
在一些实施方式中,所述判断应用进程的线程池中是否存在空闲通信线程之后,还包括:
(1)若所述应用进程的线程池中存在所述空闲通信线程,则利用所述空闲通信线程与所述系统进程进行通信。
其中,若线程池中存在空闲通信线程,则直接利用空闲的通信线程与系统进程进行通信,也就无需创建第一目标通信线程。
由上可知,本申请实施例通过当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;利用所述第一目标通信线程与所述系统进程进行通信。通过在应用进程的线程池中不存在空闲通信线程时创建一目标通信线程,从而避免系统进程无法与应用进程通信的情况,进而避免移动终端冻屏、重启以及卡顿等异常情况发生。
在一些实施例中,如图2所示提供了一种进程通信方法,该进程通信方法包括:
步骤201、当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程。
其中,系统进程需要与应用进程之间通信可通过Binder机制完成,Binder是Android系统中进程间通讯(IPC)的一种方式,也是Android系统中最重要的特性之一。Android中的四大组件工作流(Activity),服务(Service),广播接收器(Broadcast),内容提供者(ContentProvider),不同的应用程序(App)等都运行在不同的进程中,它是这些进程间通讯的桥梁。正如其名“粘合剂”一样,它把系统中各个组件粘合到了一起,是各个组件的桥梁。
其中,可通过判断系统进程需要通信的应用进程的线程池中每一线程是否处于空闲状态,从而确定线程池中是否存在空闲通信线程。
具体的,可通过确定进程对应的线程数量上限确定是否为系统进程,由于系统进程中线程的数量上限可以为32,其他进程中线程的数量上限为16,因此若确定出进程中线程的数量上限为32,则可确定该进程为系统进程。
步骤202、若应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程。
其中,若应用进程的线程池中的所有通信线程均处于工作状态或通信状态,则可以确定线程池中不存在空闲通信线程,由于系统进程需要与应用进程进行通信,因此可创建一目标通信线程,从而实现系统进程与应用进程之间的通信。
步骤203、利用第一目标通信线程与系统进程进行通信。
当由步骤203创建出第一目标通信线程后,则可利用该第一目标通信线程与系统进程进行通信。
步骤204、当系统进程需要与应用进程再次通信时,再次判断应用进程的线程池中是否存在空闲通信线程。
其中,若系统进程再次请求与应用进程进行通信,由于在当前时间点不知道应用进程中线程池内是否存在空闲通信线程,因此还需重新判断一次是否存在空闲通信线程。并且为了避免空闲通信线程的数量较少导致的应用进程本身的业务无法被线程处理,因此还需判断空闲通信线程的数量是否不小于第一预设数量,例如5个。若不小于第一预设数量,则可以在第一目标通信线程上系统进程与应用进程通信完毕后销毁该第一目标通信线程。并利用任一一个空闲通信线程与需要再次通信的系统进程进行通信。
步骤205、若应用进程的线程池中存在空闲通信线程,则判断应用进程的线程池中空闲通信线程的数量是否不小于第一预设数量。
步骤206、若应用进程的线程池中空闲通信线程的数量小于第一预设数量,则判断第一目标通信线程是否处于空闲状态。
其中,若线程池中空闲通信线程的数量小于第一预设数量,则确定当前时间点第一目标通信线程是否处于空闲状态,若处于空闲状态,则优先利用第一目标通信线程进行通信。
步骤207、若第一目标通信线程不处于空闲状态,则判断应用进程的线程池中其中,若检测出当前时间点的第一目标通信线程不处于空闲状态,则再去检测线程池中的空闲通信线程的数量是否不小于第二预设数量,其中第二预设数量一般为2或3。设定第二预设数量的目的在于为了避免系统进程的通信影响了应用进程本身的业务处理,因此会预留第二预设数量的线程以供应用进程自身使用,因此若线程池中空闲通信线程的数量不小于第二预设数量,则利用任一空闲通信线程进行通信。
步骤208、若应用进程的线程池中空闲通信线程的数量小于第二预设数量,则创建第二目标通信线程。
其中,若线程池中空闲通信线程的数量小于第二预设数量,也即如果利用空闲通信线程实现系统进程与应用进程的话,会导致应用进程的自身业务无法处理,因此禁止利用空闲通信线程与系统进程进行通信。而为了保证系统进程的正常通信,可继续创建一第二目标通信线程,利用第二目标通信线程与系统进程进行通信。
步骤209、利用第二目标通信线程与需要再次通信的系统进程进行通信。
由上可知,本申请实施例通过当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;利用所述第一目标通信线程与所述系统进程进行通信。通过在应用进程的线程池中不存在空闲通信线程时创建一目标通信线程,从而避免系统进程无法与应用进程通信的情况,进而避免移动终端冻屏、重启以及卡顿等异常情况发生。
为了便于更好的实施本申请实施例提供的进程通信方法,在一实施例中还提供了一种进程通信装置。其中名词的含义与上述进程通信方法中相同,具体实现细节可以参考方法实施例中的说明。
在一些实施例中,还提供了一种进程通信装置,如图3所示,该进程通信装置可以包括:判断模块301、创建模块302、通信模块303以及第二上报模块304等。
判断模块301,用于当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;
创建模块302,用于若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;
通信模块303,用于利用所述第一目标通信线程与所述系统进程进行通信。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本申请实施例进程通信方法采用判断模块301当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;创建模块302若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;通信模块303利用所述第一目标通信线程与所述系统进程进行通信。通过在应用进程的线程池中不存在空闲通信线程时创建一目标通信线程,从而避免系统进程无法与应用进程通信的情况,进而避免移动终端冻屏、重启以及卡顿等异常情况发生。
基于上述方法,本发明还提供了一种存储介质,其上存储有多条指令,其中,所述指令适合由处理器加载并执行如上所述的拍摄方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
图4示出了本发明实施例提供的终端的具体结构框图,该终端可以用于实施上述实施例中提供的拍摄方法、存储介质及终端。
如图4所示,移动终端1200可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上(图中仅示出一个)计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、传输模块170、包括有一个或者一个以上(图中仅示出一个)处理核心的处理器180以及电源190等部件。本领域技术人员可以理解,图4中示出的移动终端1200结构并不构成对移动终端1200的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。RF电路110可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与第二设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。
存储器120可用于存储软件程序以及模块,如上述实施例中进程通信方法、装置、存储介质及移动终端对应的程序指令/模块,处理器180通过运行存储在存储器120内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现芯片相互识别的功能。存储器120可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者第二非易失性固态存储器。在一些实例中,存储器120可以为如上所述的存储介质。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及移动终端1200的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,进一步的,触敏表面131可覆盖显示面板141。其中,上述实施例中移动终端的显示界面可以用该显示单元140表示,即显示拍摄的显示内容可以由显示单元140进行显示。
移动终端1200还可包括至少一种传感器150,比如光传感器、运动传感器以及第二传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调整显示面板141的亮度,接近传感器可在移动终端1200移动到耳边时,关闭显示面板141和/或背光。至于移动终端1200还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等第二传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与移动终端1200之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与移动终端1200的通信。
移动终端1200通过传输模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。
处理器180是移动终端1200的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行移动终端1200的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;在一些实施例中,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
具体的,处理器180包括有:算术逻辑运算单元(Arithmetic Logic Unit,ALU)、应用处理器、全球定位系统(Global Positioning System,GPS)与控制及状态总线(Bus)(图中未示出)。
移动终端1200还包括给各个部件供电的电源190(比如电池),在一些实施例中,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理供电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再供电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,移动终端1200还可以包括摄像头(如前置摄像头、后置摄像头)、蓝牙模块等,在此不再赘述。
具体在本实施例中,移动终端1200的显示单元140是触摸屏显示器,移动终端1200还包括有存储器120,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器120中,且经配置以由一个或者一个以上处理器180执行一个或者一个以上程序包含用于进行以下操作的指令:
当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;
若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;
利用所述第一目标通信线程与所述系统进程进行通信。
在一些实施方式中,在利用所述第一目标通信线程与所述系统进程进行通信之后,处理器380还可以执行以下操作的指令:
当系统进程需要与应用进程再次通信时,再次判断所述应用进程的线程池中是否存在空闲通信线程;
若所述应用进程的线程池中存在空闲通信线程,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第一预设数量;
若所述应用进程的线程池中空闲通信线程的数量不小于第一预设数量,则在所述第一目标通信线程与所述系统进程通信完成后销毁所述第一目标通信线程;
利用任一所述空闲通信线程与需要再次通信的系统进程进行通信。
在一些实施方式中,在所述判断所述应用进程的线程池中空闲通信线程的数量是否不小于第一预设数量之后,处理器380还可以执行以下操作的指令:
若所述应用进程的线程池中空闲通信线程的数量小于第一预设数量,则判断所述第一目标通信线程是否处于空闲状态;
若所述第一目标通信线程处于空闲状态,则利用所述第一目标通信线程与需要再次通信的系统进程进行通信。
在一些实施方式中,在所述判断所述第一目标通信线程是否处于空闲状态之后,处理器380还可以执行以下操作的指令:
若所述第一目标通信线程不处于空闲状态,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第二预设数量,所述第二预设数量小于所述第一预设数量;
若所述应用进程的线程池中空闲通信线程的数量不小于第二预设数量,则利用任一空闲通信线程与需要再次通信的系统进程进行通信。
在一些实施方式中,在所述判断所述应用进程的线程池中空闲通信线程的数量是否不小于第二预设数量之后,处理器380还可以执行以下操作的指令:
若所述应用进程的线程池中空闲通信线程的数量小于第二预设数量,则创建第二目标通信线程;
利用所述第二目标通信线程与需要再次通信的系统进程进行通信。
在一些实施方式中,在所述判断所述第一目标通信线程是否处于空闲状态之后,处理器380还可以执行以下操作的指令:
若所述第一目标通信线程不处于空闲状态,则创建第二目标通信线程;
利用第二目标通信线程与需要再次通信的系统进程进行通信。
在一些实施方式中,所述判断应用进程的线程池中是否存在空闲通信线程之后,处理器380还可以执行以下操作的指令:
若所述应用进程的线程池中存在所述空闲通信线程,则利用所述空闲通信线程与所述系统进程进行通信。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
以上对本申请实施例所提供的一种进程通信方法、装置、存储介质及移动终端进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想;本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。

Claims (7)

1.一种进程通信方法,其特征在于,包括:
当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;
若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;
利用所述第一目标通信线程与所述系统进程进行通信;
当系统进程需要与应用进程再次通信时,再次判断所述应用进程的线程池中是否存在空闲通信线程;
若所述应用进程的线程池中存在空闲通信线程,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第一预设数量;
若所述应用进程的线程池中空闲通信线程的数量不小于第一预设数量,则在所述第一目标通信线程与所述系统进程通信完成后销毁所述第一目标通信线程;
利用任一所述空闲通信线程与需要再次通信的系统进程进行通信;
若所述应用进程的线程池中空闲通信线程的数量小于第一预设数量,则判断所述第一目标通信线程是否处于空闲状态;
若所述第一目标通信线程处于空闲状态,则利用所述第一目标通信线程与需要再次通信的系统进程进行通信;
若所述第一目标通信线程不处于空闲状态,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第二预设数量,所述第二预设数量小于所述第一预设数量;
若所述应用进程的线程池中空闲通信线程的数量不小于第二预设数量,则利用任一空闲通信线程与需要再次通信的系统进程进行通信。
2.根据权利要求1所述的进程通信方法,其特征在于,所述判断所述应用进程的线程池中空闲通信线程的数量是否不小于第二预设数量之后,还包括:
若所述应用进程的线程池中空闲通信线程的数量小于第二预设数量,则创建第二目标通信线程;
利用所述第二目标通信线程与需要再次通信的系统进程进行通信。
3.根据权利要求1所述的进程通信方法,其特征在于,所述判断所述第一目标通信线程是否处于空闲状态之后,还包括:
若所述第一目标通信线程不处于空闲状态,则创建第二目标通信线程;
利用第二目标通信线程与需要再次通信的系统进程进行通信。
4.根据权利要求1所述的进程通信方法,其特征在于,所述判断应用进程的线程池中是否存在空闲通信线程之后,还包括:
若所述应用进程的线程池中存在所述空闲通信线程,则利用所述空闲通信线程与所述系统进程进行通信。
5.一种进程通信装置,其特征在于,包括:
判断模块,用于当系统进程需要与应用进程通信时,判断应用进程的线程池中是否存在空闲通信线程;
创建模块,用于若所述应用进程的线程池中不存在空闲通信线程,则创建第一目标通信线程;
通信模块,用于利用所述第一目标通信线程与所述系统进程进行通信;
当系统进程需要与应用进程再次通信时,再次判断所述应用进程的线程池中是否存在空闲通信线程;
若所述应用进程的线程池中存在空闲通信线程,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第一预设数量;
若所述应用进程的线程池中空闲通信线程的数量不小于第一预设数量,则在所述第一目标通信线程与所述系统进程通信完成后销毁所述第一目标通信线程;
利用任一所述空闲通信线程与需要再次通信的系统进程进行通信;
若所述应用进程的线程池中空闲通信线程的数量小于第一预设数量,则判断所述第一目标通信线程是否处于空闲状态;
若所述第一目标通信线程处于空闲状态,则利用所述第一目标通信线程与需要再次通信的系统进程进行通信;
若所述第一目标通信线程不处于空闲状态,则判断所述应用进程的线程池中空闲通信线程的数量是否不小于第二预设数量,所述第二预设数量小于所述第一预设数量;
若所述应用进程的线程池中空闲通信线程的数量不小于第二预设数量,则利用任一空闲通信线程与需要再次通信的系统进程进行通信。
6.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至4任一项所述的进程通信方法。
7.一种移动终端,其特征在于,所述移动终端包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如权利要求1至4任一项所述的进程通信方法。
CN202011292054.1A 2020-11-18 2020-11-18 一种进程通信方法、装置、存储介质及移动终端 Active CN112416584B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011292054.1A CN112416584B (zh) 2020-11-18 2020-11-18 一种进程通信方法、装置、存储介质及移动终端
US18/253,400 US20240004714A1 (en) 2020-11-18 2020-12-03 Process communication method and apparatus, storage medium, and mobile terminal
PCT/CN2020/133541 WO2022104924A1 (zh) 2020-11-18 2020-12-03 进程通信方法、装置、存储介质及移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011292054.1A CN112416584B (zh) 2020-11-18 2020-11-18 一种进程通信方法、装置、存储介质及移动终端

Publications (2)

Publication Number Publication Date
CN112416584A CN112416584A (zh) 2021-02-26
CN112416584B true CN112416584B (zh) 2023-12-19

Family

ID=74832563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011292054.1A Active CN112416584B (zh) 2020-11-18 2020-11-18 一种进程通信方法、装置、存储介质及移动终端

Country Status (3)

Country Link
US (1) US20240004714A1 (zh)
CN (1) CN112416584B (zh)
WO (1) WO2022104924A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463439A (zh) * 2017-08-21 2017-12-12 山东浪潮通软信息科技有限公司 一种线程池实现方法及装置
CN107832146A (zh) * 2017-10-27 2018-03-23 北京计算机技术及应用研究所 高可用集群系统中的线程池任务处理方法
CN108924128A (zh) * 2018-06-29 2018-11-30 Oppo(重庆)智能科技有限公司 一种移动终端及其进程间通信的限制方法、存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7640549B2 (en) * 2002-07-22 2009-12-29 Agilent Technologies, Inc. System and method for efficiently exchanging data among processes
US8032900B2 (en) * 2006-08-02 2011-10-04 Microsoft Corporation Conducting client-server inter-process communication
US20160321116A1 (en) * 2015-04-29 2016-11-03 Microsoft Technology Licensing, Llc Translating operating system processes
CN107450978A (zh) * 2016-05-31 2017-12-08 北京京东尚科信息技术有限公司 分布式系统的线程管理方法和装置
CN107704363B (zh) * 2017-09-28 2021-07-23 努比亚技术有限公司 冻屏监测方法、移动终端及计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107463439A (zh) * 2017-08-21 2017-12-12 山东浪潮通软信息科技有限公司 一种线程池实现方法及装置
CN107832146A (zh) * 2017-10-27 2018-03-23 北京计算机技术及应用研究所 高可用集群系统中的线程池任务处理方法
CN108924128A (zh) * 2018-06-29 2018-11-30 Oppo(重庆)智能科技有限公司 一种移动终端及其进程间通信的限制方法、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
(美)BRIAN GOETZ等著.《JAVA并发编程实战:JAVA CONCURRENCY IN PRACTICE》.机械工业出版社,(第1版),第141-143页. *

Also Published As

Publication number Publication date
US20240004714A1 (en) 2024-01-04
WO2022104924A1 (zh) 2022-05-27
CN112416584A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
US11099900B2 (en) Memory reclamation method and apparatus
US10437631B2 (en) Operating system hot-switching method and apparatus and mobile terminal
US11849399B2 (en) Method for reducing power consumption of terminal, and terminal
US11928312B2 (en) Method for displaying different application shortcuts on different screens
EP3402160B1 (en) Service processing method and apparatus
CN106332307B (zh) 一种应用程序接入网络的方法及移动终端
US10470133B2 (en) Electronic device and method for controlling application and component
CN112229507B (zh) 环境光检测方法、装置、存储介质及移动终端
CN110837343B (zh) 处理快照的方法、装置及终端
US20230403354A1 (en) Method for Adjusting Parameter of Audio Service and Terminal
US11409567B2 (en) Application management method and terminal
CN110765085A (zh) 日志信息写入方法、系统、存储介质及移动终端
CN110708747A (zh) 数据传输速率调整方法、系统、存储介质及移动终端
CN112416584B (zh) 一种进程通信方法、装置、存储介质及移动终端
CN106817370B (zh) 传输网络数据的方法及装置
CN111182153B (zh) 系统语言的设置方法、装置、存储介质及移动终端
CN110839296B (zh) 网络资源调度方法、装置、存储介质及移动终端
CN110716908A (zh) 日志信息写入方法、系统、存储介质及移动终端
CN111506439B (zh) 数据的获取方法、装置、存储介质及移动终端
CN111601036B (zh) 摄像头对焦方法、装置、存储介质及移动终端
CN111638897B (zh) 系统更新方法、装置、终端设备及存储介质
CN112711350A (zh) 一种触控屏的报点方法、装置、存储介质及移动终端
CN110691402A (zh) 供电方法、系统、存储介质及移动终端
CN111008049A (zh) 通信控制方法、装置、存储介质及移动终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant