鬼佬大哥大
  • / 19
  • 下載費用:30 金幣  

一種共享資源的訪問方法及裝置.pdf

摘要
申請專利號:

CN201510463467.4

申請日:

2015.07.31

公開號:

CN105069081A

公開日:

2015.11.18

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 17/30申請日:20150731|||公開
IPC分類號: G06F17/30 主分類號: G06F17/30
申請人: 北京金山安全軟件有限公司
發明人: 劉新典
地址: 100085北京市海淀區小營西路33號二層東區
優先權:
專利代理機構: 北京市廣友專利事務所有限責任公司11237 代理人: 祁獻民
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510463467.4

授權公告號:

||||||

法律狀態公告日:

2019.05.07|||2015.12.16|||2015.11.18

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

本發明的實施例公開一種共享資源的訪問方法及裝置。共享資源的訪問方法包括:接收訪問共享資源的請求,在預先設置的用于標記所述共享資源的訪問互斥文件中,查詢所述訪問共享資源的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是否為預先設置的互斥操作,如果否,接受所述訪問共享資源的請求以對所述共享資源進行訪問,如果是,拒絕所述訪問共享資源的請求。應用本發明,可以提升共享資源的訪問速度。

權利要求書

1.一種共享資源的訪問方法,其特征在于,所述方法包括:
接收訪問共享資源的請求;
在預先設置的用于標記所述共享資源的訪問互斥文件中,查詢所述訪問共
享資源的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是
否為預先設置的互斥操作;
如果否,接受所述訪問共享資源的請求以對所述共享資源進行訪問,如果
是,拒絕所述訪問共享資源的請求。
2.根據權利要求1所述的方法,其特征在于,在所述接收訪問共享資源的
請求之前,所述方法進一步包括:
預先在設置的存儲磁盤中構建所述訪問互斥文件,并在用于接收訪問共享
資源的請求對應的處理器中,設置構建的所述訪問互斥文件所在存儲路徑與共
享資源的映射關系。
3.根據權利要求1所述的方法,其特征在于,所述查詢所述訪問共享資源
的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是否為預
先設置的互斥操作;如果否,接受所述訪問共享資源的請求,包括:
查詢是否預先存儲有用于標記所述共享資源的訪問互斥文件,
如果未存儲有,接受所述訪問共享資源的請求,創建用于標記所述共享資
源的訪問互斥文件,創建的所述訪問互斥文件中包含所述訪問共享資源的請求
中包含的訪問共享資源的操作對應的互斥操作;
如果存儲有,獲取存儲的訪問互斥文件中包含的互斥操作,判斷所述訪問
共享資源的請求中包含的訪問共享資源的操作是否為所述互斥操作之一,如果
否,接受所述訪問共享資源的請求,并將所述訪問共享資源的請求中包含的訪
問共享資源的操作對應的互斥操作添加到所述存儲的訪問互斥文件中。
4.根據權利要求3所述的方法,其特征在于,所述方法進一步包括:
如果判斷所述訪問共享資源的請求中包含的訪問共享資源的操作為所述互
斥操作之一,拒絕所述訪問共享資源的請求。
5.根據權利要求4所述的方法,其特征在于,在所述如果判斷所述訪問共
享資源的請求中包含的訪問共享資源的操作為所述互斥操作之一之后,拒絕所
述訪問共享資源的請求之前,所述方法進一步包括:
查詢存儲的訪問互斥文件中包含的訪問共享資源的操作是否被操作系統殺
死,如果是,接受所述訪問共享資源的請求,刪除所述存儲的訪問互斥文件,
創建用于標記所述共享資源的訪問互斥文件,所述訪問互斥文件中包含述訪問
共享資源的請求中包含的訪問共享資源的操作對應的互斥操作;如果否,執行
所述拒絕所述訪問共享資源的請求的步驟。
6.根據權利要求5所述的方法,其特征在于,所述在如果否之后,執行所
述拒絕所述訪問共享資源的請求的步驟之前,所述方法進一步包括:
比較存儲的訪問互斥文件中包含的訪問共享資源的操作對應的第一優先級
別以及所述訪問共享資源的請求中包含的訪問共享資源的操作對應的第二優先
級;
如果第二優先級的優先級別高于第一優先級的優先級別,觸發所述操作系
統終止所述第一優先級對應的操作,執行所述接受所述訪問共享資源的請求,
刪除所述存儲的訪問互斥文件,創建用于標記所述共享資源的訪問互斥文件的
步驟,如果所述第二優先級的優先級別低于或者等于所述第一優先級的優先級
別,執行所述拒絕所述訪問共享資源的請求的步驟。
7.根據權利要求5所述的方法,其特征在于,所述在如果否之后,執行所
述拒絕所述訪問共享資源的請求的步驟之前,所述方法進一步包括:
查詢存儲的訪問互斥文件中包含的訪問共享資源的操作對應的操作時間是
否超過預先設置的可操作時間閾值;
如果是,觸發所述操作系統終止所述存儲的訪問互斥文件中包含的訪問共
享資源的操作,執行所述接受所述訪問共享資源的請求,刪除所述存儲的訪問
互斥文件,創建用于標記所述共享資源的訪問互斥文件的步驟,如果否,執行
所述拒絕所述訪問共享資源的請求的步驟。
8.根據權利要求1至7任一項所述的方法,其特征在于,在接受所述訪問
共享資源的請求之后,所述方法進一步包括:
在所述訪問共享資源的請求中包含的訪問共享資源的操作退出后,刪除創
建的用于標記所述共享資源的訪問互斥文件。
9.根據權利要求1所述的方法,其特征在于,所述查詢所述訪問共享資源
的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是否為預
先設置的互斥操作;如果否,接受所述訪問共享資源的請求,包括:
查詢并獲取所述共享資源文件對應的應用安裝的用于標識互斥操作的內容
提供者的互斥狀態,如果所述訪問共享資源的請求中包含的訪問共享資源的操
作不為互斥狀態包含的互斥操作之一,接受所述訪問共享資源的請求。
10.一種共享資源的訪問裝置,其特征在于,所述裝置包括:查詢模塊、
共享資源訪問模塊以及拒絕訪問模塊,其中,
所述查詢模塊,用于接收訪問共享資源的請求,在預先設置的用于標記所
述共享資源的訪問互斥文件中,查詢所述訪問共享資源的請求中包含的訪問共
享資源的操作與當前訪問所述共享資源的操作是否為預先設置的互斥操作,如
果是,通知所述共享資源訪問模塊,如果否,通知所述拒絕訪問模塊;
所述共享資源訪問模塊,用于在接收到所述查詢模塊發送的通知之后,接
受所述訪問共享資源的請求以對所述共享資源進行訪問;
所述拒絕訪問模塊,用于在接收到所述查詢模塊發送的通知之后,拒絕所
述訪問共享資源的請求。

說明書

一種共享資源的訪問方法及裝置

技術領域

本發明涉及計算機資源訪問技術,尤其涉及一種共享資源的訪問方法及裝
置。

背景技術

目前,安卓(Android)操作系統以其操作簡單且方便快捷的特性,越來越
為用戶所接受,已普遍應用于用戶的工作以及生活中,在Android操作系統中,
存在許多共享資源,用戶之間通過資源共享,可以實現資源的最佳利用。對于
共享資源,需要避免共享資源的并發訪問,即避免多個線程或進程同時訪問和
操作共享資源而引起的各線程或進程之間相互覆蓋共享資源,導致被訪問的共
享資源處于不一致的狀態。例如,多個客戶端不能對Android操作系統的共享資
源進行一些特定的同時操作,舉例來說,在客戶端上傳一共享文件時,其他客
戶端不能同時執行刪除該共享文件的操作,再例如,在一客戶端執行共享文件
的寫操作時,其他客戶端不能同時執行該共享文件的寫操作。

為了避免共享資源的訪問沖突,現有技術中一般基于共享資源的數據格式,
采用Java技術,通過Native層的C++代碼進行進程間互斥,以實現進程間互斥,
從而實現客戶端之間訪問操作的互斥,即通過在第一共享資源中設置訪問互斥
條件,當某一客戶端執行第一訪問操作以訪問第一共享資源時,查詢該第一共
享資源中設置的訪問互斥條件,如果當前待訪問的客戶端的第一訪問操作與設
置的第一共享資源訪問互斥條件相匹配,則拒絕該當前待訪問的客戶端的訪問
請求。這樣,可以保證第一共享資源在某一時刻只能被一客戶端進行訪問操作,
如果有其他客戶端請求訪問,且該訪問為互斥訪問,則拒絕當前請求訪問該第
一共享資源的其他客戶端。

但上述共享資源的訪問方法,由于需要與共享資源數據格式相兼容,只能
通過Native層的C++代碼進行進程間互斥,需要使用c++的函數庫,即共享庫
(SO,SharedObject)文件進行代碼編程,在接收到共享資源訪問請求后,再
從共享資源中導出共享資源訪問互斥條件進行比較,由于訪問互斥條件作為共
享資源的一部分并將隨同共享資源下發至客戶端,從而增大了共享資源對應的
Android安裝包(APK,AndroidPackage)的大小,增加了所需的存儲空間,降
低了共享資源的訪問速度,使得下載共享資源所需的時間延長。

發明內容

有鑒于此,本發明實施例提供一種共享資源的訪問方法及裝置,提升共享
資源的訪問速度。

為達到上述目的,本發明的實施例采用如下技術方案:

第一方面,本發明實施例提供一種共享資源的訪問方法,包括:

接收訪問共享資源的請求;

在預先設置的用于標記所述共享資源的訪問互斥文件中,查詢所述訪問共
享資源的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是
否為預先設置的互斥操作;

如果否,接受所述訪問共享資源的請求以對所述共享資源進行訪問,如果
是,拒絕所述訪問共享資源的請求。

作為另一實施例,在所述接收訪問共享資源的請求之前,所述方法進一步
包括:

預先在設置的存儲磁盤中構建所述訪問互斥文件,并在用于接收訪問共享
資源的請求對應的處理器中,設置構建的所述訪問互斥文件所在存儲路徑與共
享資源的映射關系。

作為另一實施例,所述查詢所述訪問共享資源的請求中包含的訪問共享資
源的操作與當前訪問所述共享資源的操作是否為預先設置的互斥操作;如果否,
接受所述訪問共享資源的請求,包括:

查詢是否預先存儲有用于標記所述共享資源的訪問互斥文件,

如果未存儲有,接受所述訪問共享資源的請求,創建用于標記所述共享資
源的訪問互斥文件,創建的所述訪問互斥文件中包含所述訪問共享資源的請求
中包含的訪問共享資源的操作對應的互斥操作;

如果存儲有,獲取存儲的訪問互斥文件中包含的互斥操作,判斷所述訪問
共享資源的請求中包含的訪問共享資源的操作是否為所述互斥操作之一,如果
否,接受所述訪問共享資源的請求,并將所述訪問共享資源的請求中包含的訪
問共享資源的操作對應的互斥操作添加到所述存儲的訪問互斥文件中。

作為另一實施例,所述方法進一步包括:

如果判斷所述訪問共享資源的請求中包含的訪問共享資源的操作為所述互
斥操作之一,拒絕所述訪問共享資源的請求。

在所述如果判斷所述訪問共享資源的請求中包含的訪問共享資源的操作為
所述互斥操作之一之后,拒絕所述訪問共享資源的請求之前,所述方法進一步
包括:

查詢存儲的訪問互斥文件中包含的訪問共享資源的操作是否被操作系統殺
死,如果是,接受所述訪問共享資源的請求,刪除所述存儲的訪問互斥文件,
創建用于標記所述共享資源的訪問互斥文件,所述訪問互斥文件中包含述訪問
共享資源的請求中包含的訪問共享資源的操作對應的互斥操作;如果否,執行
所述拒絕所述訪問共享資源的請求的步驟。

作為另一實施例,所述在如果否之后,執行所述拒絕所述訪問共享資源的
請求的步驟之前,所述方法進一步包括:

比較存儲的訪問互斥文件中包含的訪問共享資源的操作對應的第一優先級
別以及所述訪問共享資源的請求中包含的訪問共享資源的操作對應的第二優先
級;

如果第二優先級的優先級別高于第一優先級的優先級別,觸發所述操作系
統終止所述第一優先級對應的操作,執行所述接受所述訪問共享資源的請求,
刪除所述存儲的訪問互斥文件,創建用于標記所述共享資源的訪問互斥文件的
步驟,如果所述第二優先級的優先級別低于或者等于所述第一優先級的優先級
別,執行所述拒絕所述訪問共享資源的請求的步驟。

作為另一實施例,所述在如果否之后,執行所述拒絕所述訪問共享資源的
請求的步驟之前,所述方法進一步包括:

查詢存儲的訪問互斥文件中包含的訪問共享資源的操作對應的操作時間是
否超過預先設置的可操作時間閾值;

如果是,觸發所述操作系統終止所述存儲的訪問互斥文件中包含的訪問共
享資源的操作,執行所述接受所述訪問共享資源的請求,刪除所述存儲的訪問
互斥文件,創建用于標記所述共享資源的訪問互斥文件的步驟,如果否,執行
所述拒絕所述訪問共享資源的請求的步驟。

作為另一實施例,在接受所述訪問共享資源的請求之后,所述方法進一步
包括:

在所述訪問共享資源的請求中包含的訪問共享資源的操作退出后,刪除創
建的用于標記所述共享資源的訪問互斥文件。

作為另一實施例,所述查詢所述訪問共享資源的請求中包含的訪問共享資
源的操作與當前訪問所述共享資源的操作是否為預先設置的互斥操作;如果否,
接受所述訪問共享資源的請求,包括:

查詢并獲取所述共享資源文件對應的應用安裝的用于標識互斥操作的內容
提供者的互斥狀態,如果所述訪問共享資源的請求中包含的訪問共享資源的操
作不為互斥狀態包含的互斥操作之一,接受所述訪問共享資源的請求。

第二方面,本發明實施例提供一種共享資源的訪問裝置,所述裝置包括:
查詢模塊、共享資源訪問模塊以及拒絕訪問模塊,其中,

所述查詢模塊,用于接收訪問共享資源的請求,在預先設置的用于標記所
述共享資源的訪問互斥文件中,查詢所述訪問共享資源的請求中包含的訪問共
享資源的操作與當前訪問所述共享資源的操作是否為預先設置的互斥操作,如
果是,通知所述共享資源訪問模塊,如果否,通知所述拒絕訪問模塊;

所述共享資源訪問模塊,用于在接收到所述查詢模塊發送的通知之后,接
受所述訪問共享資源的請求以對所述共享資源進行訪問;

所述拒絕訪問模塊,用于在接收到所述查詢模塊發送的通知之后,拒絕所
述訪問共享資源的請求。

作為另一實施例,所述裝置進一步包括:

映射關系構建模塊,用于預先在設置的存儲磁盤中構建所述訪問互斥文件,
并在用于接收訪問共享資源的請求對應的處理器中,設置構建的所述訪問互斥
文件所在存儲路徑與共享資源的映射關系。

作為另一實施例,所述查詢模塊包括:接收單元、查詢單元、第一處理單
元以及第二處理單元,其中,

所述接收單元,用于接收訪問共享資源的請求;

所述查詢單元,用于依據接收的請求查詢是否存儲有用于標記所述共享資
源的訪問互斥文件;

所述第一處理單元,用于在所述查詢單元未存儲有訪問互斥文件時,創建
用于標記所述共享資源的訪問互斥文件,創建的所述訪問互斥文件中包含所述
訪問共享資源的請求中包含的訪問共享資源的操作對應的互斥操作,通知所述
共享資源訪問模塊;

所述第二處理單元,用于在所述查詢單元存儲有訪問互斥文件時,獲取存
儲的訪問互斥文件中包含的互斥操作,判斷所述訪問共享資源的請求中包含的
訪問共享資源的操作是否為所述互斥操作之一,如果否,接受所述訪問共享資
源的請求,并將所述訪問共享資源的請求中包含的訪問共享資源的操作對應的
互斥操作添加到所述存儲的訪問互斥文件中,通知所述共享資源訪問模塊。

作為另一實施例,所述第二處理單元進一步用于如果判斷所述訪問共享資
源的請求中包含的訪問共享資源的操作為所述互斥操作之一,拒絕所述訪問共
享資源的請求,通知所述拒絕訪問模塊。

作為另一實施例,所述第二處理單元包括:獲取子單元、判斷子單元以及
接受處理子單元,其中,

所述獲取子單元,用于在所述查詢單元存儲有訪問互斥文件時,獲取存儲
的訪問互斥文件中包含的互斥操作;

所述判斷子單元,用于判斷所述訪問共享資源的請求中包含的訪問共享資
源的操作是否為所述互斥操作之一,如果是,通知所述拒絕處理子單元;如果
否,通知所述接受處理子單元;

所述拒絕處理子單元,用于接收通知,拒絕所述訪問共享資源的請求,通
知所述拒絕訪問模塊。

作為另一實施例,所述第二處理單元進一步包括:查詢子單元以及創建子
單元,其中,

所述查詢子單元,用于攔截所述判斷子單元通知所述拒絕處理子單元的通
知,查詢存儲的訪問互斥文件中包含的訪問共享資源的操作是否被操作系統殺
死,如果是,通知所述創建子單元,如果否,通知所述拒絕處理子單元;

所述創建子單元,用于接收通知,接受所述訪問共享資源的請求,刪除所
述存儲的訪問互斥文件,創建用于標記所述共享資源的訪問互斥文件,所述訪
問互斥文件中包含述訪問共享資源的請求中包含的訪問共享資源的操作對應的
互斥操作。

作為另一實施例,所述第二處理單元進一步包括:優先級比較子單元以及
優先級處理子單元,其中,

所述優先級比較子單元,用于攔截所述查詢子單元通知所述拒絕處理子單
元的通知,比較存儲的訪問互斥文件中包含的訪問共享資源的操作對應的第一
優先級別以及所述訪問共享資源的請求中包含的訪問共享資源的操作對應的第
二優先級;

所述優先級處理子單元,如果第二優先級的優先級別高于第一優先級的優
先級別,觸發所述操作系統終止所述第一優先級對應的操作,通知所述創建子
單元,如果所述第二優先級的優先級別低于或者等于所述第一優先級的優先級
別,通知所述拒絕處理子單元。

作為另一實施例,所述第二處理單元進一步包括:操作時間查詢子單元以
及操作時間處理子單元,其中,

所述操作時間查詢子單元,用于攔截優先級處理子單元通知拒絕處理子單
元的通知,查詢存儲的訪問互斥文件中包含的訪問共享資源的操作對應的操作
時間是否超過預先設置的可操作時間閾值;

所述操作時間處理子單元,如果是,觸發所述操作系統終止所述存儲的訪
問互斥文件中包含的訪問共享資源的操作,通知所述創建子單元,如果否,通
知所述拒絕處理子單元。

作為另一實施例,該裝置進一步包括:

操作監測模塊,用于在監測到所述訪問共享資源的請求中包含的訪問共享
資源的操作退出后,刪除創建的用于標記所述共享資源的訪問互斥文件。

作為另一實施例,所述查詢模塊包括:接收單元、互斥狀態查詢單元、第
三處理單元以及第四處理單元,其中,

所述接收單元,用于接收訪問共享資源的請求;

所述互斥狀態查詢單元,用于查詢并獲取所述共享資源文件中的用于標識
互斥操作的內容提供者的互斥狀態,如果所述訪問共享資源的請求中包含的訪
問共享資源的操作不為互斥狀態包含的互斥操作之一,通知所述第三處理單元,
否則,通知所述第四處理單元;

所述第三處理單元,用于接收通知,接受所述訪問共享資源的請求。

所述第四處理單元,用于接收通知,拒絕所述訪問共享資源的請求。

第三方面,本發明實施例還提供了一種電子設備,可以包括:

一個或者多個處理器;

存儲器;

一個或者多個模塊,所述一個或者多個模塊存儲在所述存儲器中,當被所
述一個或者多個處理器執行時進行如下操作:

接收訪問共享資源的請求;

在預先設置的用于標記所述共享資源的訪問互斥文件中,查詢所述訪問共
享資源的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是
否為預先設置的互斥操作;

如果否,接受所述訪問共享資源的請求以對所述共享資源進行訪問,如果
是,拒絕所述訪問共享資源的請求。

第四方面,本發明實施例還提供了一種存儲介質,用于存儲應用程序,所
述應用程序用于執行本發明實施例所提供的一種共享資源的訪問方法。

第五方面,本發明實施例還提供了一種應用程序,用于執行本發明實施例
所提供的一種共享資源的訪問方法。

在本發明中,通過在標記共享資源的訪問互斥文件中設置該共享資源的互
斥操作,查詢模塊在接收到訪問共享資源的請求后,通過判斷接收的請求對應
的操作與當前訪問共享資源對應的操作是否為互斥操作,從而決定共享資源訪
問模塊以及拒絕訪問模塊是否允許接收的訪問共享資源的請求。由于將訪問互
斥文件從共享資源文件中分離開來,可以降低共享資源對應的Android安裝包的
大小,從而能夠有效提升共享資源的訪問速度。

附圖說明

為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施
例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述
中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付
出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。

圖1為本發明實施例一共享資源的訪問方法流程示意圖;

圖2為本發明實施例二共享資源的訪問方法流程示意圖;

圖3為本發明實施例共享資源的訪問裝置結構示意圖。

具體實施方式

下面結合附圖對本發明實施例進行詳細描述。

應當明確,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實
施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前
提下所獲得的所有其它實施例,都屬于本發明保護的范圍。

本發明實施例共享資源的訪問方法總體流程包括:

接收訪問共享資源的請求;

在預先設置的用于標記所述共享資源的訪問互斥文件中,查詢所述訪問共
享資源的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是
否為預先設置的互斥操作;

如果否,接受所述訪問共享資源的請求以對所述共享資源進行訪問,如果
是,拒絕所述訪問共享資源的請求。

本步驟中,客戶端或服務器在共享資源后,通過在用于標記所述共享資源
的訪問互斥文件中設置該共享資源的互斥操作,即在訪問互斥文件中存儲共享
資源的互斥操作,例如,寫操作與讀操作的互斥操作,以及,上傳操作與刪除
操作的互斥操作等,所述訪問互斥文件與所述共享資源相互獨立,在接收到訪
問共享資源的請求后,通過調用訪問互斥文件,直接可以判斷接收的請求對應
的操作與當前訪問共享資源對應的操作是否為互斥操作,從而決定是否允許接
收的訪問共享資源的請求。由于訪問互斥文件與所述共享資源相互獨立,無需
遵循共享資源數據格式,使得在訪問互斥文件中設置互斥操作的代碼,可以采
用多種語言實現,無需僅使用c++的SO函數庫在共享資源文件中進行代碼編程,
同時,訪問互斥文件不隨共享資源下發,可以降低共享資源對應的Android安裝
包(APK,AndroidPackage)的大小,能夠有效提升共享資源的訪問速度,所需
的存儲空間小。

作為一可選實施例,在所述接收訪問共享資源的請求之前,所述方法進一
步包括:

預先在設置的存儲磁盤中構建所述訪問互斥文件,并在用于接收訪問共享
資源的請求對應的處理器中,設置構建的所述訪問互斥文件所在存儲路徑與共
享資源的映射關系。

本發明實施例中,設置共享資源的互斥操作與設置訪問互斥條件相同。

作為一可選實施例,查詢所述訪問共享資源的請求中包含的訪問共享資源
的操作與當前訪問所述共享資源的操作是否為預先設置的互斥操作;如果否,
接受所述訪問共享資源的請求,包括:

A11,查詢是否預先存儲有用于標記所述共享資源的訪問互斥文件,

A12,如果未存儲有,接受所述訪問共享資源的請求,創建用于標記所述共
享資源的訪問互斥文件,創建的所述訪問互斥文件中包含所述訪問共享資源的
請求中包含的訪問共享資源的操作對應的互斥操作;

如果存儲有,獲取存儲的訪問互斥文件中包含的互斥操作,判斷所述訪問
共享資源的請求中包含的訪問共享資源的操作是否為所述互斥操作之一,如果
否,接受所述訪問共享資源的請求,并將所述訪問共享資源的請求中包含的訪
問共享資源的操作對應的互斥操作添加到所述存儲的訪問互斥文件中。

本步驟中,互斥操作是指為了避免共享資源訪問沖突,不能同時執行的操
作,例如,在客戶端上傳一共享文件時,其他客戶端不能同時執行刪除該共享
文件的操作,則針對同一共享文件的上傳操作與刪除操作構成互斥操作,如果
當前操作為上傳操作,則在存儲的訪問互斥文件中,包含的互斥操作為刪除操
作,當然,實際應用中,一個操作也可能對應一個或多個互斥操作。再例如,
在一客戶端執行共享文件的寫操作時,其他客戶端不能同時執行該共享文件的
寫操作,則針對同一共享文件的寫操作與讀操作構成互斥操作,訪問互斥文件
中包含有一個或多個互斥操作。

本發明實施例中,所述方法進一步包括:

如果判斷所述訪問共享資源的請求中包含的訪問共享資源的操作為所述互
斥操作之一,拒絕所述訪問共享資源的請求。

在拒絕所述訪問共享資源的請求的同時,之前或之后,該方法可以進一步
包括:

在發送所述訪問共享資源的請求的客戶端界面提示有共享資源訪問互斥的
提醒信息。

作為一可選實施例,在所述如果判斷所述訪問共享資源的請求中包含的訪
問共享資源的操作為所述互斥操作之一之后,拒絕所述訪問共享資源的請求之
前,該方法還可以進一步包括:

查詢存儲的訪問互斥文件中包含的訪問共享資源的操作是否被操作系統殺
死,如果是,接受所述訪問共享資源的請求,為了避免后續中該存儲的訪問互
斥文件對訪問共享資源的請求的誤判,刪除所述存儲的訪問互斥文件,創建用
于標記所述共享資源的訪問互斥文件,所述訪問互斥文件中包含述訪問共享資
源的請求中包含的訪問共享資源的操作對應的互斥操作;如果否,執行所述拒
絕所述訪問共享資源的請求的步驟。

本步驟中,在如果否之后,執行所述拒絕所述訪問共享資源的請求的步驟
之前,該方法還可以進一步包括:

A21,比較存儲的訪問互斥文件中包含的訪問共享資源的操作對應的第一優
先級別以及所述訪問共享資源的請求中包含的訪問共享資源的操作對應的第二
優先級;

A22,如果第二優先級的優先級別高于第一優先級的優先級別,觸發所述操
作系統終止所述第一優先級對應的操作,執行所述接受所述訪問共享資源的請
求,刪除所述存儲的訪問互斥文件,創建用于標記所述共享資源的訪問互斥文
件的步驟,如果所述第二優先級的優先級別低于或者等于所述第一優先級的優
先級別,執行所述拒絕所述訪問共享資源的請求的步驟。

本步驟中,可以通過操作系統將存儲的訪問互斥文件中包含的訪問共享資
源的操作終止;或,操作系統將存儲的訪問互斥文件中包含的訪問共享資源的
操作對應的進程殺死,從而終止所述第一優先級對應的操作。

作為另一可選實施例,在如果否之后,執行所述拒絕所述訪問共享資源的
請求的步驟之前,該方法還可以進一步包括:

A31,查詢存儲的訪問互斥文件中包含的訪問共享資源的操作對應的操作時
間是否超過預先設置的可操作時間閾值;

A32,如果是,觸發所述操作系統終止所述存儲的訪問互斥文件中包含的訪
問共享資源的操作,執行所述接受所述訪問共享資源的請求,刪除所述存儲的
訪問互斥文件,創建用于標記所述共享資源的訪問互斥文件的步驟,如果否,
執行所述拒絕所述訪問共享資源的請求的步驟。

作為另一可選實施例,在接受所述訪問共享資源的請求之后,該方法還可
以進一步包括:

在所述訪問共享資源的請求中包含的訪問共享資源的操作退出后,刪除創
建的用于標記所述共享資源的訪問互斥文件。

本發明實施例中,作為另一可選實施例,所述查詢所述訪問共享資源的請
求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是否為預先設
置的互斥操作;如果否,接受所述訪問共享資源的請求,包括:

查詢并獲取所述共享資源文件對應的應用安裝的用于標識互斥操作的內容
提供者(ContentProvider)的互斥狀態,如果所述訪問共享資源的請求中包含的
訪問共享資源的操作不為互斥狀態包含的互斥操作之一,接受所述訪問共享資
源的請求。

本步驟中,通過在共享資源對應的應用中,例如,服務器中安裝用于標識
互斥操作的ContentProvider,利用ContentProvider中設置的互斥狀態,即互斥
操作,其他發送訪問共享資源請求的客戶端或應用通過查詢該共享資源的
ContentProvider中存儲的互斥狀態,從而確定是否接受所述訪問共享資源的請
求。

本發明實施例中,ContentProvider是Android操作系統中的四大組件之一。
主要用于對外共享數據,并通過設置的互斥狀態對共享進行控制,也就是通過
ContentProvider將應用(客戶端或服務器)中的數據共享給其他應用(客戶端
或服務器)訪問,通過ContentProvider對請求的操作與當前操作是否為互斥狀
態進行判斷,如果不為互斥狀態,其他應用可以對指定應用中的數據進行操作,
數據可以存儲于文件系統、SQLite數據庫或其它存儲容器中。

作為另一可選實施例,該方法還可以進一步包括:

B11,如果所述訪問共享資源的請求中包含的訪問共享資源的操作為互斥狀
態包含的互斥操作之一;

B12,比較當前訪問共享資源的操作對應的第一優先級別以及所述訪問共享
資源的請求中包含的訪問共享資源的操作對應的第二優先級;

B13,如果第二優先級的優先級別高于第一優先級的優先級別,觸發操作系
統終止所述第一優先級對應的操作,執行所述接受所述訪問共享資源的請求,
如果不是,拒絕所述訪問共享資源的請求。

以下以訪問共享資源時需要創建訪問互斥文件為例,對發明實施例共享資
源的訪問方法作詳細說明。

圖1為本發明實施例一共享資源的訪問方法流程示意圖。參見圖1,該方法
包括:

步驟101,接收第一訪問操作請求;

本步驟中,客戶端或服務器在共享資源后,可以接受其他客戶端或服務器
的訪問操作請求,并對接收的訪問操作是否與該共享資源當前的訪問操作為互
斥操作進行判斷。

步驟102,查詢是否存儲有用于標記該第一訪問操作對應的共享資源的訪問
互斥文件,如果有,執行步驟103,否則,執行步驟111;

本步驟中,如果存儲有共享資源對應的訪問互斥文件,表明該共享資源當
前有訪問操作。如果未存儲有共享資源對應的訪問互斥文件,表明該共享資源
當前沒有訪問操作,因而,不會與第一訪問操作發生訪問沖突。

步驟103,提取存儲的訪問互斥文件中包含的互斥操作,判斷第一訪問操作
是否為互斥操作之一,如果是,執行步驟104,否則,執行步驟111;

步驟104,查詢存儲的訪問互斥文件中的進程標識符(PID,ProcessID)對
應的進程是否被操作系統殺死,如果是,執行步驟105,否則,執行步驟106;

本步驟中,PID是由進程執行一訪問操作時的標識。由于訪問共享資源的操
作在未完成時,該共享資源的操作對應的進程有可能被意外結束,從而導致創
建的用于標記所述共享資源的訪問互斥文件未被刪除。因而,通過在訪問互斥
文件中記錄該共享資源的操作所在進程的PID,如果記錄的訪問互斥文件中的
PID對應的進程被操作系統殺死,表明該進程已結束,不會發生資源訪問沖突。

步驟105,接受第一訪問操作對共享資源的訪問,刪除存儲的訪問互斥文件,
執行步驟111;

本步驟中,如果記錄的訪問互斥文件中的PID對應的進程被操作系統殺死,
接受第一訪問操作對共享資源的訪問,刪除存儲的訪問互斥文件,創建用于標
記所述共享資源的訪問互斥文件,所述訪問互斥文件中包含述訪問共享資源的
請求中包含的訪問共享資源的操作對應的互斥操作以及第一訪問操作對應進程
的PID。

步驟106;拒絕第一訪問操作,結束流程,等待下一訪問操作請求;

步驟111,創建用于標記該共享資源的訪問互斥文件;

本步驟中,較佳地,創建的訪問互斥文件存儲在內置或外置SD卡上,以確
保多個應用(客戶端)都有權限訪問。

步驟112,將所述第一訪問操作對應的互斥操作以及第一訪問操作對應的
PID寫入創建的訪問互斥文件;

步驟113,客戶端通過第一訪問操作訪問共享資源;

步驟114,第一訪問操作訪問共享資源完畢,退出共享資源訪問,刪除為第
一訪問操作創建的訪問互斥文件。

圖2為本發明實施例二共享資源的訪問方法流程示意圖。參見圖2,以獵豹
清理大師進行圖片瘦身操作和圖片備份操作為例,設圖片瘦身操作為第一訪問
操作,圖片備份操作為第二訪問操作,訪問的同一圖片資源設為圖片共享資源。
該方法包括:

步驟201,獵豹清理大師接收第一訪問操作,查詢到未存儲有圖片共享資源
的訪問互斥文件,創建用于標記該圖片共享資源的訪問互斥文件,并將當前進
程的PID寫入到創建的訪問互斥文件中;

本步驟中,由于未查詢到存儲有圖片共享資源的訪問互斥文件,表明當前
未有圖片共享資源訪問,因而,在接收到第一訪問操作后,創建用于標記該圖
片共享資源的訪問互斥文件,并將第一訪問操作對應的進程的PID寫入到訪問
互斥文件中。

步驟202,接收第二訪問操作,查詢獲取第二訪問操作對應的圖片共享資源
的訪問互斥文件,提取訪問互斥文件中的PID,確認操作系統中存在該PID對
應的進程,拒絕該第二訪問操作;

本步驟中,在第一訪問操作未完成時,接收到第二訪問操作。第二訪問操
作對應的圖片共享資源與第一訪問操作對應的圖片共享資源為同一圖片共享資
源,第二訪問操作對應的圖片共享資源的訪問互斥文件為獵豹清理大師為第一
訪問操作創建的用于標記該圖片共享資源的訪問互斥文件。

實際應用中,可以在發送第二訪問操作的客戶端界面提示有任務互斥的提
醒信息。

步驟203,在第一訪問操作執行中,第一訪問操作對應的進程被操作系統殺
掉,接收到第三訪問操作,查詢第三訪問操作對應的圖片共享資源的訪問互斥
文件,提取訪問互斥文件中的PID,確認操作系統中不存在該PID對應的進程,
允許該第三訪問操作,刪除存儲的訪問互斥文件并構建新的訪問互斥文件;

本步驟中,在第一訪問操作未完成時,如果當前進程被操作系統終止,則
訪問互斥文件仍然存在,在接收到第三訪問操作后,查詢獲取第三訪問操作對
應的圖片共享資源的訪問互斥文件,提取訪問互斥文件中的PID,確認該PID
無效(該PID對應的進程已被操作系統殺掉,互斥無效),表明不需要執行互
斥操作,接受該第三訪問操作,即對圖片共享資源執行圖片備份操作。

步驟204,第三訪問操作完成,退出圖片共享資源的訪問,刪除為該第三訪
問操作構建的訪問互斥文件。

本步驟中,在第三訪問操作完成后,刪除創建的用于標記該圖片共享資源
的訪問互斥文件。這樣,在后續圖片共享資源訪問中,當接收到第四訪問操作,
查詢是否存在第四訪問操作對應的圖片共享資源的訪問互斥文件,可以確認未
查詢到,接受該第四訪問操作。

由上述可見,本發明實施例共享資源的訪問方法,通過為共享資源設置互
斥操作,在接收到對共享資源的訪問操作請求時,查詢接收的請求中包含的訪
問共享資源的操作與當前訪問所述共享資源的操作是否為設置的互斥操作,在
為互斥操作時,拒絕接收的訪問操作請求,從而可以有效地解決Android操作系
統中兩個應用或兩個進程訪問同一共享資源時存在的互斥問題,避免同時訪問
和修改同一共享資源帶來的同步問題。

圖3為本發明實施例共享資源的訪問裝置結構示意圖。參見圖3,所述裝置
包括:查詢模塊301、共享資源訪問模塊302以及拒絕訪問模塊303,其中,

所述查詢模塊301,用于接收訪問共享資源的請求,在預先設置的用于標記
所述共享資源的訪問互斥文件中,查詢所述訪問共享資源的請求中包含的訪問
共享資源的操作與當前訪問所述共享資源的操作是否為預先設置的互斥操作,
如果是,通知所述共享資源訪問模塊302,如果否,通知所述拒絕訪問模塊303;

所述共享資源訪問模塊302,用于在接收到所述查詢模塊301發送的通知之
后,接受所述訪問共享資源的請求以對所述共享資源進行訪問;

所述拒絕訪問模塊303,用于在接收到所述查詢模塊301發送的通知之后,
拒絕所述訪問共享資源的請求。

本發明實施例中,作為一可選實施例,該裝置還可以進一步包括:

映射關系構建模塊(圖中未示出),用于預先在設置的存儲磁盤中構建所
述訪問互斥文件,并在用于接收訪問共享資源的請求對應的處理器中,設置構
建的所述訪問互斥文件所在存儲路徑與共享資源的映射關系。

作為一可選實施例,所述查詢模塊301包括:接收單元、查詢單元、第一
處理單元以及第二處理單元(圖中未示出),其中,

所述接收單元,用于接收訪問共享資源的請求;

所述查詢單元,用于依據接收的請求查詢是否存儲有用于標記所述共享資
源的訪問互斥文件;

所述第一處理單元,用于在所述查詢單元未存儲有訪問互斥文件時,創建
用于標記所述共享資源的訪問互斥文件,創建的所述訪問互斥文件中包含所述
訪問共享資源的請求中包含的訪問共享資源的操作對應的互斥操作,通知所述
共享資源訪問模塊302;

所述第二處理單元,用于在所述查詢單元存儲有訪問互斥文件時,獲取存
儲的訪問互斥文件中包含的互斥操作,判斷所述訪問共享資源的請求中包含的
訪問共享資源的操作是否為所述互斥操作之一,如果否,接受所述訪問共享資
源的請求,并將所述訪問共享資源的請求中包含的訪問共享資源的操作對應的
互斥操作添加到所述存儲的訪問互斥文件中,通知所述共享資源訪問模塊302。

本發明實施例中,所述第二處理單元進一步用于如果判斷所述訪問共享資
源的請求中包含的訪問共享資源的操作為所述互斥操作之一,拒絕所述訪問共
享資源的請求,通知所述拒絕訪問模塊303;

作為一可選實施例,所述第二處理單元包括:獲取子單元、判斷子單元以
及接受處理子單元,其中,

所述獲取子單元,用于在所述查詢單元存儲有訪問互斥文件時,獲取存儲
的訪問互斥文件中包含的互斥操作;

所述判斷子單元,用于判斷所述訪問共享資源的請求中包含的訪問共享資
源的操作是否為所述互斥操作之一,如果是,通知所述拒絕處理子單元;如果
否,通知所述接受處理子單元;

本發明實施例中,較佳地,在通知所述拒絕訪問模塊303的消息中,進一
步包括用于在發送所述訪問共享資源的請求的客戶端界面顯示的有共享資源訪
問互斥的提醒信息。

所述拒絕處理子單元,用于接收通知,拒絕所述訪問共享資源的請求,通
知所述拒絕訪問模塊303。

所述接受處理子單元,用于接收通知,接受所述訪問共享資源的請求,并
將所述訪問共享資源的請求中包含的訪問共享資源的操作對應的互斥操作添加
到所述存儲的訪問互斥文件中,通知所述共享資源訪問模塊302。

作為另一可選實施例,所述第二處理單元還可以進一步包括:查詢子單元
以及創建子單元,其中,

所述查詢子單元,用于攔截所述判斷子單元通知所述拒絕處理子單元的通
知,查詢存儲的訪問互斥文件中包含的訪問共享資源的操作是否被操作系統殺
死,如果是,通知所述創建子單元,如果否,通知所述拒絕處理子單元;

所述創建子單元,用于接收通知,接受所述訪問共享資源的請求,刪除所
述存儲的訪問互斥文件,創建用于標記所述共享資源的訪問互斥文件,所述訪
問互斥文件中包含述訪問共享資源的請求中包含的訪問共享資源的操作對應的
互斥操作。

本發明實施例中,作為再一可選實施例,所述第二處理單元還可以進一步
包括:優先級比較子單元以及優先級處理子單元,其中,

所述優先級比較子單元,用于攔截所述查詢子單元通知所述拒絕處理子單
元的通知,比較存儲的訪問互斥文件中包含的訪問共享資源的操作對應的第一
優先級別以及所述訪問共享資源的請求中包含的訪問共享資源的操作對應的第
二優先級;

所述優先級處理子單元,如果第二優先級的優先級別高于第一優先級的優
先級別,觸發所述操作系統終止所述第一優先級對應的操作,通知所述創建子
單元,如果所述第二優先級的優先級別低于或者等于所述第一優先級的優先級
別,通知所述拒絕處理子單元。

本發明實施例中,作為再一可選實施例,所述第二處理單元還可以進一步
包括:操作時間查詢子單元以及操作時間處理子單元,其中,

所述操作時間查詢子單元,用于攔截優先級處理子單元通知拒絕處理子單
元的通知,查詢存儲的訪問互斥文件中包含的訪問共享資源的操作對應的操作
時間是否超過預先設置的可操作時間閾值;

所述操作時間處理子單元,如果是,觸發所述操作系統終止所述存儲的訪
問互斥文件中包含的訪問共享資源的操作,通知所述創建子單元,如果否,通
知所述拒絕處理子單元。

本發明實施例中,較佳地,該裝置還可以進一步包括:

所述操作監測模塊304,用于在監測到所述訪問共享資源的請求中包含的訪
問共享資源的操作退出后,刪除創建的用于標記所述共享資源的訪問互斥文件。

本發明實施例中,作為另一可選實施例,所述查詢模塊301包括:接收單
元、互斥狀態查詢單元、第三處理單元以及第四處理單元(圖中未示出),其
中,

所述接收單元,用于接收訪問共享資源的請求;

所述互斥狀態查詢單元,用于查詢并獲取所述共享資源文件對應的應用安
裝的用于標識互斥操作的內容提供者的互斥狀態,如果所述訪問共享資源的請
求中包含的訪問共享資源的操作不為互斥狀態包含的互斥操作之一,通知所述
第三處理單元,否則,通知所述第四處理單元;

所述第三處理單元,用于接收通知,接受所述訪問共享資源的請求。

所述第四處理單元,用于接收通知,拒絕所述訪問共享資源的請求。

作為一可選實施例,所述查詢模塊301還可以進一步包括:攔截單元、優
先級比較單元以及優先級處理單元,其中,

所述攔截單元,用于攔截所述互斥狀態查詢單元通知所述第四處理單元的
通知,判斷所述訪問共享資源的請求中包含的訪問共享資源的操作是否為互斥
狀態包含的互斥操作之一,如果是,通知所述優先級比較單元,如果否,通知
所述第三處理單元;

所述優先級比較單元,用于比較當前訪問共享資源的操作對應的第一優先
級別以及所述訪問共享資源的請求中包含的訪問共享資源的操作對應的第二優
先級;

所述優先級處理單元,用于在第二優先級的優先級別高于第一優先級的優
先級別時,觸發操作系統終止所述第一優先級對應的操作,通知所述第三處理
單元,如果所述第二優先級的優先級別低于或者等于所述第一優先級的優先級
別,通知所述第四處理單元。

本發明實施例還提供了一種電子設備,可以包括:

一個或者多個處理器;

存儲器;

一個或者多個模塊,所述一個或者多個模塊存儲在所述存儲器中,當被所
述一個或者多個處理器執行時進行如下操作:

接收訪問共享資源的請求;

在預先設置的用于標記所述共享資源的訪問互斥文件中,查詢所述訪問共
享資源的請求中包含的訪問共享資源的操作與當前訪問所述共享資源的操作是
否為預先設置的互斥操作;

如果否,接受所述訪問共享資源的請求以對所述共享資源進行訪問,如果
是,拒絕所述訪問共享資源的請求。

本發明實施例還提供了一種存儲介質,用于存儲應用程序,所述應用程序
用于執行本發明實施例所提供的一種共享資源的訪問方法。

本發明實施例還提供了一種應用程序,用于執行本發明實施例所提供的一
種共享資源的訪問方法。

在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認
為是用于實現邏輯功能的可執行指令的定序列表,可以具體實現在任何計算機
可讀介質中,以供指令執行系統、裝置或設備(如基于計算機的系統、包括處
理器的系統或其他可以從指令執行系統、裝置或設備取指令并執行指令的系統)
使用,或結合這些指令執行系統、裝置或設備而使用。就本說明書而言,″計算
機可讀介質″可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執行
系統、裝置或設備或結合這些指令執行系統、裝置或設備而使用的裝置。計算
機可讀介質的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線
的電連接部(電子裝置),便攜式計算機盤盒(磁裝置),隨機存取存儲器(RAM),
只讀存儲器(ROM),可擦除可編輯只讀存儲器(EPROM或閃速存儲器),
光纖裝置,以及便攜式光盤只讀存儲器(CDROM)。另外,計算機可讀介質甚
至可以是可在其上打印所述程序的紙或其他合適的介質,因為可以例如通過對
紙或其他介質進行光學掃描,接著進行編輯、解譯或必要時以其他合適方式進
行處理來以電子方式獲得所述程序,然后將其存儲在計算機存儲器中。

應當理解,本發明的各部分可以用硬件、軟件、固件或它們的組合來實現。
在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執
行系統執行的軟件或固件來實現。例如,如果用硬件來實現,和在另一實施方
式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有
用于對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合
邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)
等。

本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部
分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計
算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。

為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當
然,在實施本發明時可以把各單元/模塊的功能在同一個或多個軟件和/或硬件中
實現。

通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本
發明可借助軟件加必需的通用硬件平臺的方式來實現。基于這樣的理解,本發
明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式
體現出來,該計算機軟件產品可以存儲在存儲介質中,如ROM/RAM、磁碟、
光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,
或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。

以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于
此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到
的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍
應以權利要求的保護范圍為準。

關 鍵 詞:
一種 共享資源 訪問 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種共享資源的訪問方法及裝置.pdf
鏈接地址:http://www.wwszu.club/p-6385940.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大