国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于緩存鎖的多任務(wù)時序執(zhí)行方法及系統(tǒng)的制作方法

      文檔序號:9787236閱讀:354來源:國知局
      一種基于緩存鎖的多任務(wù)時序執(zhí)行方法及系統(tǒng)的制作方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及多線程及多任務(wù)技術(shù)領(lǐng)域,尤其涉及的是一種基于緩存鎖的多任務(wù)時序執(zhí)行方法及系統(tǒng)。
      【背景技術(shù)】
      [0002]在當(dāng)前移動互聯(lián)網(wǎng)時代,終端會采用多個線程來執(zhí)行多種任務(wù)。在一個有時序要求的并發(fā)系統(tǒng)中,通常有多個線程需要競爭執(zhí)行多種任務(wù),且這些任務(wù)的開始執(zhí)行時間必須按照一定順序進(jìn)行,常用的方法是使用線程鎖等技術(shù),但這種技術(shù)使用復(fù)雜,且使用不當(dāng)時會引起死鎖等問題。
      [0003]因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明要解決的技術(shù)問題在于,提供一種基于緩存鎖的多任務(wù)時序執(zhí)行方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中多任務(wù)競爭系統(tǒng)中的時序控制機(jī)制復(fù)雜容易引起死鎖的問題。
      [0005]本發(fā)明解決技術(shù)問題所采用的技術(shù)方案如下:
      一種基于緩存鎖的多任務(wù)時序執(zhí)行方法,其中,包括:
      A、將N個任務(wù)加入任務(wù)列表中,確定N個任務(wù)的開始執(zhí)行順序;根據(jù)N個任務(wù)的開始執(zhí)行順序依次制定對應(yīng)的N個緩存鎖,并設(shè)置N個緩存鎖的值均為第一指定值;制定監(jiān)控鎖;其中,N為正整數(shù);
      B、啟動M個線程去獲取N個緩存鎖,每個緩存鎖只能被一個線程獲取,N個緩存鎖按照所述開始執(zhí)行順序依次被M個線程獲取,獲取到緩存鎖的N個線程按照所述開始執(zhí)行順序執(zhí)行對應(yīng)的任務(wù),當(dāng)所述任務(wù)執(zhí)行完后,將對應(yīng)的緩存鎖的值設(shè)置為第二指定值,剩余L個線程去獲取監(jiān)控鎖;其中肩為正整數(shù),且M大于N+1,L=M-N;
      C、獲取所述監(jiān)控鎖的線程執(zhí)行監(jiān)控任務(wù),對多任務(wù)時序執(zhí)行結(jié)果進(jìn)行監(jiān)控。
      [0006]所述的基于緩存鎖的多任務(wù)時序執(zhí)行方法,其中,所述步驟B具體包括:
      B1、啟動M個線程去獲取N個緩存鎖,每個緩存鎖只能被一個線程獲取,N個緩存鎖按照所述開始執(zhí)行順序依次被M個線程獲取,所有線程去獲取第一個緩存鎖,獲取到第一個緩存鎖的線程執(zhí)行對應(yīng)的任務(wù),執(zhí)行完成后,將第一個緩存鎖的值設(shè)置為第二指定值;其中,N為正整數(shù),M為正整數(shù),且M大于N+1;
      B2、剩余M-1個線程去獲取第二個緩存鎖,獲取到第二個緩存鎖的線程執(zhí)行對應(yīng)的任務(wù),執(zhí)行完成后,將第二個緩存鎖的值設(shè)置為第二指定值;
      B3、剩余M-2個線程去獲取剩余的N-2個緩存鎖,直到第N個緩存鎖被獲取到為止,獲取到第N個緩存鎖的線程執(zhí)行對應(yīng)的任務(wù),執(zhí)行完成后,將第N個緩存鎖的值設(shè)置為第二指定值,剩余L個線程去獲取所述監(jiān)控鎖,其中,L=M-N。
      [0007]所述的基于緩存鎖的多任務(wù)時序執(zhí)行方法,其中,所述步驟A還包括:
      Al、設(shè)置監(jiān)控鎖的失效時間,所述失效時間大于所述多個任務(wù)中的最長執(zhí)行時間。
      [0008]所述的基于緩存鎖的多任務(wù)時序執(zhí)行方法,其中,所述步驟C具體包括:
      C11、獲取所述監(jiān)控鎖的線程執(zhí)行監(jiān)控任務(wù),每隔第一時間檢查各個緩存鎖的值是否均為第二指定值,若為是,則執(zhí)行步驟C13;若為否,則執(zhí)行步驟C12;其中,所述第一時間小于所述失效時間;
      C12、檢查所述監(jiān)控鎖是否失效,若為是,則執(zhí)行步驟C13;若為否,則返回步驟Cll;
      C13、刪除各個緩存鎖及監(jiān)控鎖,任務(wù)結(jié)束。
      [0009]所述的基于緩存鎖的多任務(wù)時序執(zhí)行方法,其中,所述第一指定值為0,所述第二指定值為I。
      [0010]—種基于緩存鎖的多任務(wù)時序執(zhí)行系統(tǒng),其中,包括:
      任務(wù)制定模塊,用于將N個任務(wù)加入任務(wù)列表中,確定N個任務(wù)的開始執(zhí)行順序;根據(jù)N個任務(wù)的開始執(zhí)行順序依次制定對應(yīng)的N個緩存鎖,并設(shè)置N個緩存鎖的值均為第一指定值;制定監(jiān)控鎖;其中,N為正整數(shù);
      任務(wù)執(zhí)行模塊,用于啟動M個線程去獲取N個緩存鎖,每個緩存鎖只能被一個線程獲取,N個緩存鎖按照所述開始執(zhí)行順序依次被M個線程獲取,獲取到緩存鎖的N個線程按照所述開始執(zhí)行順序執(zhí)行對應(yīng)的任務(wù),當(dāng)所述任務(wù)執(zhí)行完后,將對應(yīng)的緩存鎖的值設(shè)置為第二指定值,剩余L個線程去獲取監(jiān)控鎖;其中1為正整數(shù),且M大于N+1,L=M-N;
      任務(wù)監(jiān)控模塊,用于獲取所述監(jiān)控鎖的線程執(zhí)行監(jiān)控任務(wù),對多任務(wù)時序執(zhí)行結(jié)果進(jìn)行監(jiān)控。
      [0011]所述的基于緩存鎖的多任務(wù)時序執(zhí)行系統(tǒng),其中,所述任務(wù)執(zhí)行模塊包括:
      啟動單元,用于啟動M個線程去獲取N個緩存鎖,每個緩存鎖只能被一個線程獲取,N個緩存鎖按照所述開始執(zhí)行順序依次被M個線程獲取,所有線程去獲取第一個緩存鎖,獲取到第一個緩存鎖的線程執(zhí)行對應(yīng)的任務(wù),執(zhí)行完成后,將第一個緩存鎖的值設(shè)置為第二指定值;其中,N為正整數(shù),M為正整數(shù),且M大于N+1;
      獲取單元,用于通過剩余M-1個線程去獲取第二個緩存鎖,獲取到第二個緩存鎖的線程執(zhí)行對應(yīng)的任務(wù),執(zhí)行完成后,將第二個緩存鎖的值設(shè)置為第二指定值;
      執(zhí)行單元,用于通過剩余M-2個線程去獲取剩余的N-2個緩存鎖,直到第N個緩存鎖被獲取到為止,獲取到第N個緩存鎖的線程執(zhí)行對應(yīng)的任務(wù),執(zhí)行完成后,將第N個緩存鎖的值設(shè)置為第二指定值,剩余L個線程去獲取所述監(jiān)控鎖,其中,L=M-N。
      [0012]所述的基于緩存鎖的多任務(wù)時序執(zhí)行系統(tǒng),其中,所述任務(wù)制定模塊包括:
      時間設(shè)置單元,用于設(shè)置監(jiān)控鎖的失效時間,所述失效時間大于所述多個任務(wù)中的最長執(zhí)行時間。
      [0013]所述的基于緩存鎖的多任務(wù)時序執(zhí)行系統(tǒng),其中,所述任務(wù)監(jiān)控模塊包括:
      鎖值檢查單元,用于獲取所述監(jiān)控鎖的線程執(zhí)行監(jiān)控任務(wù),每隔第一時間檢查各個緩存鎖的值是否均為第二指定值,若為是,則執(zhí)行任務(wù)結(jié)束單元;若為否,則執(zhí)行失效檢查單元;其中,所述第一時間小于所述失效時間;
      失效檢查單元,用于、檢查所述監(jiān)控鎖是否失效,若為是,則執(zhí)行任務(wù)結(jié)束單元;若為否,則返回鎖值檢查單元;
      任務(wù)結(jié)束單元,用于刪除各個緩存鎖及監(jiān)控鎖,任務(wù)結(jié)束。
      [0014]所述的基于緩存鎖的多任務(wù)時序執(zhí)行系統(tǒng),其中,所述第一指定值為0,所述第二指定值為I。
      [0015]本發(fā)明所提供的一種基于緩存鎖的多任務(wù)時序執(zhí)行方法及系統(tǒng),有效地解決了現(xiàn)有技術(shù)中多任務(wù)競爭系統(tǒng)中的時序控制機(jī)制復(fù)雜容易引起死鎖的問題,通過將N個任務(wù)加入任務(wù)列表中,確定N個任務(wù)的開始執(zhí)行順序;根據(jù)N個任務(wù)的開始執(zhí)行順序依次制定對應(yīng)的N個緩存鎖,并設(shè)置N個緩存鎖的值均為第一指定值;制定監(jiān)控鎖;其中4為正整數(shù);啟動M個線程去獲取N個緩存鎖,每個緩存鎖只能被一個線程獲取,N個緩存鎖按照所述開始執(zhí)行順序依次被M個線程獲取,獲取到緩存鎖的N個線程按照所述開始執(zhí)行順序執(zhí)行對應(yīng)的任務(wù),當(dāng)所述任務(wù)執(zhí)行完后,將對應(yīng)的緩存鎖的值設(shè)置為第二指定值,剩余L個線程去獲取監(jiān)控鎖;其中』為正整數(shù),且M大于N+1,L=M-N;獲取所述監(jiān)控鎖的線程執(zhí)行監(jiān)控任務(wù),對多任務(wù)時序執(zhí)行結(jié)果進(jìn)行監(jiān)控;提供了一種借助緩存鎖來按照順序并且競爭執(zhí)行任務(wù)的方案,簡化了多任務(wù)競爭系統(tǒng)中的時序控制機(jī)制,不會出現(xiàn)死鎖等問題,帶來了大大的方便。
      當(dāng)前第1頁1 2 3 4 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1