一種在線課堂系統(tǒng)中內存動態(tài)分配方法及設備的制作方法
【專利摘要】本發(fā)明提供了一種在線課堂系統(tǒng)中內存動態(tài)分配方法及設備,上述方法包括以下步驟:主線程創(chuàng)建第一預設數(shù)目的子線程,并創(chuàng)建與所述子線程數(shù)目相同的內存塊;所述主線程將所述內存塊放入內存隊列中,并按照所述內存塊的時間戳的先后順序將內存隊列中的所述內存塊進行排序,其中,排在所述內存隊列中第一位置的為隊首,排在所述內存隊列中最后位置的為隊尾;所述主線程將所述內存隊列中的隊尾位置的所述內存塊分配給執(zhí)行讀取操作的子線程;所述主線程將所述內存隊列中的隊首位置的所述內存塊分配給執(zhí)行寫入操作的子線程。
【專利說明】一種在線課堂系統(tǒng)中內存動態(tài)分配方法及設備
【技術領域】
[0001] 本發(fā)明屬于內存分配方法領域,尤其涉及一種在線課堂系統(tǒng)中內存動態(tài)分配方法 及設備。
【背景技術】
[0002] 現(xiàn)有的軟件開發(fā)過程中,需要同時使用多線程來快速完成任務。為了避免多線程 執(zhí)行任務中造成的一塊內存同時被進行讀取和寫入操作,需要在讀寫過程中設置阻塞。但 當讀寫線程過多時,會導致阻塞等待時間過長,從而影響畫面流暢感。
[0003] 現(xiàn)有的內存管理機制主要是根據(jù)統(tǒng)計到的內存的使用情況建立內存池,并將內存 池劃分為大小一致的內存塊。在執(zhí)行任務時,線程申請對應的內存空間,如果申請的空間大 于實際所需要的,這會導致內存浪費;如果申請的內存太小,又會影響到線程的正常工作。 因此需要內核對系統(tǒng)內存進行有效地管理,做到有效地申請合適大小的內存空間。
【發(fā)明內容】
[0004] 本發(fā)明提供一種在線課堂系統(tǒng)中內存動態(tài)分配方法及設備,以解決上述問題。
[0005] 本發(fā)明提供一種在線課堂系統(tǒng)中內存動態(tài)分配方法。上述方法包括以下步驟:主 線程創(chuàng)建第一預設數(shù)目的子線程,并創(chuàng)建與所述子線程數(shù)目相同的內存塊;所述主線程將 所述內存塊放入內存隊列中,并按照所述內存塊的時間戳的先后順序將內存隊列中的所述 內存塊進行排序,其中,排在所述內存隊列中第一位置的為隊首,排在所述內存隊列中最后 位置的為隊尾;所述主線程將所述內存隊列中的隊尾位置的所述內存塊分配給執(zhí)行讀取操 作的子線程;所述主線程將所述內存隊列中的隊首位置的所述內存塊分配給執(zhí)行寫入操作 的子線程。
[0006] 本發(fā)明還提供一種在線課堂系統(tǒng)中內存動態(tài)分配設備,上述設備包括:主線程管 理模塊和內存隊列管理模塊,所述主線程管理模塊和所述內存隊列管理模塊相連接;其中 所述主線程管理模塊包括多個子線程,所述內存隊列管理模塊包括多個內存塊;所述主線 程管理模塊,用于創(chuàng)建第一預設數(shù)目的子線程,并創(chuàng)建與所述子線程數(shù)目相同的內存塊;還 用于將所述內存塊放入內存隊列管理模塊中,并按照所述內存塊的時間戳的先后順序將內 存隊列管理模塊中的所述內存塊進行排序,其中,排在所述內存隊列管理模塊中第一位置 的為隊首,排在所述內存隊列管理模塊中最后位置的為隊尾;還用于將所述內存隊列管理 模塊中的隊尾位置的所述內存塊分配給執(zhí)行讀取操作的子線程;還用于將所述內存隊列管 理模塊中的隊首位置的所述內存塊分配給執(zhí)行寫入操作的子線程;所述內存隊列管理模塊 用于存放所述內存塊。
[0007] 相較于先前技術,根據(jù)本發(fā)明提供的在線課堂系統(tǒng)中內存動態(tài)分配方法及設備, 本發(fā)明采取動態(tài)分配的方法將內存資源分配給子線程,提高了數(shù)據(jù)存儲和讀取的速度。本 發(fā)明采取動態(tài)分配的方法避免了因一次分配太少,子線程不能滿足系統(tǒng)運行要求,同時避 免了因一次分配過多,造成內存浪費,從而影響其它線程工作的問題。另外,本發(fā)明提供的 方法能在保持通用內存管理的高效性和可靠性的同時,有效地降低、甚至解決了內存管理 中存在的內存資源浪費的問題。
【專利附圖】
【附圖說明】
[0008] 此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
[0009] 圖1所示為根據(jù)本發(fā)明的較佳實施例提供的在線課堂系統(tǒng)中內存動態(tài)分配方法 的流程圖;
[0010] 圖2所示為根據(jù)本發(fā)明的較佳實施例提供的在線課堂系統(tǒng)中內存動態(tài)分配設備 結構圖。
【具體實施方式】
[0011] 下文中將參考附圖并結合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0012] 如圖1所示為根據(jù)本發(fā)明的較佳實施例提供的在線課堂系統(tǒng)中內存動態(tài)分配方 法的流程圖。如圖1所示,本發(fā)明的較佳實施例提供的在線課堂系統(tǒng)中內存動態(tài)分配方法 包括步驟101-104。
[0013] 步驟101 :主線程創(chuàng)建第一預設數(shù)目的子線程,并創(chuàng)建與所述子線程數(shù)目相同的 內存塊;
[0014] 所述創(chuàng)建的內存塊的大小相等。
[0015] 舉例而言,主線程根據(jù)攝像頭的分辨率來創(chuàng)建相應大小的內存塊,具體創(chuàng)建的內 存塊的大小為攝像頭一幀圖像的大小,不同分辨率的攝像頭的一幀圖像的大小不同。如攝 像頭的分辨率為1920X 1080,則內存塊的大小為1920X1080X3。
[0016] 步驟102 :所述主線程將所述內存塊放入內存隊列中,并按照所述內存塊的時間 戳的先后順序將內存隊列中的所述內存塊進行排序,其中,排在所述內存隊列中第一位置 的為隊首,排在所述內存隊列中最后位置的為隊尾;
[0017] 所述時間戳為所述執(zhí)行寫入操作的子線程在執(zhí)行寫入操作時記錄在內存塊中的。
[0018] 所述方法還包括:根據(jù)所述子線程執(zhí)行寫入操作的時間和所述子線程執(zhí)行讀取操 作的時間的比值與預設值的關系對放入所述內存隊列中的所述內存塊的數(shù)目進行調整,具 體為:若存在所述子線程執(zhí)行寫入操作的時間與所述子線程執(zhí)行讀取操作的時間的比值小 于第一預設值時,增加所述內存隊列中所述內存塊的數(shù)目;若存在所述子線程執(zhí)行寫入操 作的時間與所述子線程執(zhí)行讀取操作的時間的比值大于第二預設值時,減少所述內存隊列 中所述內存塊的數(shù)目,其中第一預設值小于第二預設值。
[0019] 若存在所述子線程執(zhí)行寫入操作的時間與所述子線程執(zhí)行讀取操作的時間的比 值小于第一預設值時,在所述內存隊列中增加第二預設數(shù)目的內存塊。
[0020] 若存在所述子線程執(zhí)行寫入操作的時間與所述子線程執(zhí)行讀取操作的時間的比 值大于第二預設值時,在所述內存隊列中減少第三預設數(shù)目的內存塊。
[0021] 步驟103 :所述主線程將所述內存隊列中的隊尾位置的所述內存塊分配給執(zhí)行讀 取操作的子線程;
[0022] 步驟104 :所述主線程將所述內存隊列中的隊首位置的所述內存塊分配給執(zhí)行寫 入操作的子線程。
[0023] 所述子線程在執(zhí)行寫入操作時,對正在接受寫入的內存塊設置阻塞。
[0024] 下面舉例進行詳細說明:
[0025] 主線程創(chuàng)建4個子線程,分別為子線程1、子線程2、子線程3、子線程4。主線程創(chuàng) 建4個大小分別為1920X 1080X 3的內存塊:內存塊1、內存塊2、內存塊3、內存塊4。主線 程將內存塊1、內存塊2、內存塊3、內存塊4放入內存隊列中。假設當前時刻各內存塊的時 間戳的具體如表1所示:
[0026] 表 1
[0027]
【權利要求】
1. 一種在線課堂系統(tǒng)中內存動態(tài)分配方法,其特征在于,包括w下步驟: 主線程創(chuàng)建第一預設數(shù)目的子線程,并創(chuàng)建與所述子線程數(shù)目相同的內存塊; 所述主線程將所述內存塊放入內存隊列中,并按照所述內存塊的時間戳的先后順序將 內存隊列中的所述內存塊進行排序,其中,排在所述內存隊列中第一位置的為隊首,排在所 述內存隊列中最后位置的為隊尾; 所述主線程將所述內存隊列中的隊尾位置的所述內存塊分配給執(zhí)行讀取操作的子線 程; 所述主線程將所述內存隊列中的隊首位置的所述內存塊分配給執(zhí)行寫入操作的子線 程。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述時間戳為所述執(zhí)行寫入操作的子線 程在執(zhí)行寫入操作時記錄在內存塊中的。
3. 根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括;根據(jù)所述子線程執(zhí)行寫 入操作的時間和所述子線程執(zhí)行讀取操作的時間的比值與預設值的關系對放入所述內存 隊列中的所述內存塊的數(shù)目進行調整,具體為:若存在所述子線程執(zhí)行寫入操作的時間與 所述子線程執(zhí)行讀取操作的時間的比值小于第一預設值時,增加所述內存隊列中所述內存 塊的數(shù)目;若存在所述子線程執(zhí)行寫入操作的時間與所述子線程執(zhí)行讀取操作的時間的比 值大于第二預設值時,減少所述內存隊列中所述內存塊的數(shù)目,其中第一預設值小于第二 預設值。
4. 根據(jù)權利要求3所述的方法,其特征在于,若存在所述子線程執(zhí)行寫入操作的時間 與所述子線程執(zhí)行讀取操作的時間的比值小于第一預設值時,在所述內存隊列中增加第二 預設數(shù)目的內存塊。
5. 根據(jù)權利要求3所述的方法,其特征在于,若存在所述子線程執(zhí)行寫入操作的時間 與所述子線程執(zhí)行讀取操作的時間的比值大于第二預設值時,在所述內存隊列中減少第H 預設數(shù)目的內存塊。
6. 根據(jù)權利要求1所述的方法,其特征在于,所述子線程在執(zhí)行寫入操作時,對正在接 受寫入的內存塊設置阻塞。
7. 根據(jù)權利要求1所述的方法,其特征在于,所述創(chuàng)建的內存塊的大小相等。
8. -種在線課堂系統(tǒng)中內存動態(tài)分配設備,其特征在于,包括;主線程管理模塊和內 存隊列管理模塊,所述主線程管理模塊和所述內存隊列管理模塊相連接;其中所述主線程 管理模塊包括多個子線程,所述內存隊列管理模塊包括多個內存塊; 所述主線程管理模塊,用于創(chuàng)建第一預設數(shù)目的子線程,并創(chuàng)建與所述子線程數(shù)目相 同的內存塊;還用于將所述內存塊放入內存隊列管理模塊中,并按照所述內存塊的時間戳 的先后順序將內存隊列管理模塊中的所述內存塊進行排序,其中,排在所述內存隊列管理 模塊中第一位置的為隊首,排在所述內存隊列管理模塊中最后位置的為隊尾;還用于將所 述內存隊列管理模塊中的隊尾位置的所述內存塊分配給執(zhí)行讀取操作的子線程;還用于將 所述內存隊列管理模塊中的隊首位置的所述內存塊分配給執(zhí)行寫入操作的子線程; 所述內存隊列管理模塊用于存放所述內存塊。
【文檔編號】G06F12/02GK104461915SQ201410655171
【公開日】2015年3月25日 申請日期:2014年11月17日 優(yōu)先權日:2014年11月17日
【發(fā)明者】沈玉將, 董曉宏 申請人:蘇州闊地網絡科技有限公司