本发明涉及通讯,尤其涉及一种蓝牙和网络线程的分离方法、系统、终端及计算机可读存储介质。
背景技术:
1、目前市场上的很多产品都带有wifi和蓝牙设备,一般来说,wifi用来连接网络,蓝牙用来连接声音设备,但在实际开发的过程中,蓝牙使用蓝牙协议栈,wifi使用connman进程(是一个开源项目,在linux操作系统中提供一个后台进程,来管理网络连接)进行开发,两者都使用dbus(消息总线系统,是一个低延迟,低开销,高可用性的ipc机制)进行通讯,对于该部分处理不好,会产生很多的系统崩溃现象,对于用户使用造成了很大的障碍。
2、因此,现有技术还有待于改进和发展。
技术实现思路
1、本发明的主要目的在于提供一种蓝牙和网络线程的分离方法、系统、终端及计算机可读存储介质,旨在解决现有技术中多线程使用dbus造成系统崩溃现象,对于用户使用造成了很大障碍的问题。
2、为实现上述目的,本发明提供一种蓝牙和网络线程的分离方法,所述蓝牙和网络线程的分离方法包括如下步骤:
3、将wifi在线程中使用的全局函数和bluetooth在线程中使用的全局函数设置为局部函数,以使得wifi在线程中无法使用bluetooth在线程中的局部函数,同时bluetooth在线程中无法使用wifi在线程中的局部函数;
4、修改wifi和bluetooth的默认线程上下文,修改后wifi运行时使用wifi线程上下文,修改后bluetooth运行时使用bluetooth线程上下文,以使得wifi和bluetooth的线程运行之后处于两种不同的上下文环境中;
5、在wifi中使用wifi自行封装的函数进行监听消息,在bluetooth中使用bluetooth自行封装的函数进行监听消息,以使得wifi和bluetooth处于不同的观察环境中;
6、修改wifi和bluetooth分别与dbus的守护进程建立连接的函数,修改后wifi和bluetooth分别和dbus的守护进程建立连接;
7、对全局变量进行限制条件访问,控制所有对于全局函数的访问都在一个线程中访问。
8、可选地,所述的蓝牙和网络线程的分离方法,其中,wifi在线程中使用的局部函数对bluetooth的线程不可见。
9、可选地,所述的蓝牙和网络线程的分离方法,其中,bluetooth在线程中使用的局部函数对wifi的线程不可见。
10、可选地,所述的蓝牙和网络线程的分离方法,其中,对wifi和bluetooth的线程进行分离,使得wifi和bluetooth的线程运行之后处于两种不同的上下文环境中。
11、可选地,所述的蓝牙和网络线程的分离方法,其中,当wifi和bluetooth处于不同的观察环境中,wifi和bluetooth无法进行消息互相调用。
12、此外,为实现上述目的,本发明还提供一种蓝牙和网络线程的分离系统,其中,所述蓝牙和网络线程的分离系统包括:
13、函数修改模块,用于将wifi在线程中使用的全局函数和bluetooth在线程中使用的全局函数设置为局部函数,以使得wifi在线程中无法使用bluetooth在线程中的局部函数,同时bluetooth在线程中无法使用wifi在线程中的局部函数;
14、上下文修改模块,用于修改wifi和bluetooth的默认线程上下文,修改后wifi运行时使用wifi线程上下文,修改后bluetooth运行时使用bluetooth线程上下文,以使得wifi和bluetooth的线程运行之后处于两种不同的上下文环境中;
15、函数封装模块,用于在wifi中使用wifi自行封装的函数进行监听消息,在bluetooth中使用bluetooth自行封装的函数进行监听消息,以使得wifi和bluetooth处于不同的观察环境中;
16、进程连接模块,用于修改wifi和bluetooth分别与dbus的守护进程建立连接的函数,修改后wifi和bluetooth分别和dbus的守护进程建立连接;
17、访问控制模块,用于对全局变量进行限制条件访问,控制所有对于全局函数的访问都在一个线程中访问。
18、此外,为实现上述目的,本发明还提供一种终端,其中,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的蓝牙和网络线程的分离程序,所述蓝牙和网络线程的分离程序被所述处理器执行时实现如上所述的蓝牙和网络线程的分离方法的步骤。
19、此外,为实现上述目的,本发明还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有蓝牙和网络线程的分离程序,所述蓝牙和网络线程的分离程序被处理器执行时实现如上所述的蓝牙和网络线程的分离方法的步骤。
20、本发明中,将wifi在线程中使用的全局函数和bluetooth在线程中使用的全局函数设置为局部函数,以使得wifi在线程中无法使用bluetooth在线程中的局部函数,同时bluetooth在线程中无法使用wifi在线程中的局部函数;修改wifi和bluetooth的默认线程上下文,修改后wifi运行时使用wifi线程上下文,修改后bluetooth运行时使用bluetooth线程上下文,以使得wifi和bluetooth的线程运行之后处于两种不同的上下文环境中;在wifi中使用wifi自行封装的函数进行监听消息,在bluetooth中使用bluetooth自行封装的函数进行监听消息,以使得wifi和bluetooth处于不同的观察环境中;修改wifi和bluetooth分别与dbus的守护进程建立连接的函数,修改后wifi和bluetooth分别和dbus的守护进程建立连接;对全局变量进行限制条件访问,控制所有对于全局函数的访问都在一个线程中访问。本发明采用多项分离的措施对wifi和bluetooth进行分离,能够很好的解决系统崩溃问题。
1.一种蓝牙和网络线程的分离方法,其特征在于,所述蓝牙和网络线程的分离方法包括:
2.根据权利要求1所述的蓝牙和网络线程的分离方法,其特征在于,wifi在线程中使用的局部函数对bluetooth的线程不可见。
3.根据权利要求1所述的蓝牙和网络线程的分离方法,其特征在于,bluetooth在线程中使用的局部函数对wifi的线程不可见。
4.根据权利要求1所述的蓝牙和网络线程的分离方法,其特征在于,对wifi和bluetooth的线程进行分离,使得wifi和bluetooth的线程运行之后处于两种不同的上下文环境中。
5.根据权利要求1所述的蓝牙和网络线程的分离方法,其特征在于,当wifi和bluetooth处于不同的观察环境中,wifi和bluetooth无法进行消息互相调用。
6.一种蓝牙和网络线程的分离系统,其特征在于,所述蓝牙和网络线程的分离系统包括:
7.一种终端,其特征在于,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的蓝牙和网络线程的分离程序,所述蓝牙和网络线程的分离程序被所述处理器执行时实现如权利要求1-5任一项所述的蓝牙和网络线程的分离方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有蓝牙和网络线程的分离程序,所述蓝牙和网络线程的分离程序被处理器执行时实现如权利要求1-5任一项所述的蓝牙和网络线程的分离方法的步骤。