日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab的多线程操作

發布時間:2023/12/20 循环神经网络 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab的多线程操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

matlab的多線程操作

        • 先導知識
        • 一、結論
        • 二、定時器timer
        • 三、多進程操作

先導知識

  • 聽說過:定時器中斷、線程、進程
  • 知道:matlab的幫助文檔使用方式,如:doc memmapfile、help memmapfile
  • 理解:回調函數,同步回調、異步回調(不知道也沒關系,csdn里面很多人都寫了這個)
  • 一、結論

    截止到2021a版本,matlab不能實現傳統意義的多線程,但是可以實現并行計算(doc parallel)、定時器中斷,以及利用磁盤映射實現多進程通信(doc memmapfile)

    本文標題是有些“文不對題”的,實際上只是便于讀者檢索到該文章。

    二、定時器timer

    對于輕量級的任務,比如在命令行打印一個字符串,繪制一張點數不多的圖,可以”模擬“多線程(本質上還是定時器中斷)

    該板塊講一下timer的基本使用,有底子的建議在matlab中或者瀏覽器中查閱timer的幫助文檔:

    1、基本用法

    t = timer('BusyMode','queue','ExecutionMode', 'fixedspacing',...'Period',1/fps, 'TimerFcn', @call_back)

    一般設置這幾個就可以了,如果需要設置其他的,請自行查閱幫助文檔。

    (1)‘BusyMode’: 一般選‘queue’,排隊執行,這樣的話,不至于丟任務。

    Character vector or string scalar that indicates action taken when a timer has to execute TimerFcn before the completion of previous execution of the TimerFcn. When Running='on', BusyMode is read only. This table summarizes the busy modes.

    BusyMode ValuesBehavior if Queue EmptyBehavior if Queue Not EmptyNotes
    'drop'Adds task to queueDrops taskPossible skipping of TimerFcn calls
    'error'Adds task to queueCompletes task; throws error specified by ErrorFcn; stops timerStops timer after completing task in execution queue
    'queue'Adds task to queueWaits for queue to clear, and then enters task in queueAdjusts Period property to manage tasks in execution queue

    (2)‘Period’:兩次回調之間間隔時間;

    (3)‘ExecutionMode’:設置下一次回調從什么時候開始,這四個都可能用到,根據需求來。

    singleShot:只執行一次;

    fixedRate:從上一次回調進入排隊開始,經過一個周期,再進入下一次回調;
    fixedDelay:經過一個time lag之后,經過一個周期,再進入下一次回調;
    fixedSpacing:上一次回調結束之后,經過一個周期,再進入下一次回調;
    (4)‘TimerFcn’, @call_back

    設置回調函數,這個有點復雜。timer本質上就是一個定時器中斷,它通過將任務(call_back)排隊執行,它的”回調方式“是根據’ExecutionMode’的設置來確定的,不是傳統意義上的同步回調或者異步回調。

    三、多進程操作

    所謂多進程操作,就是開多個matlab,通過訪問硬盤當中的同一個內存空間,實現多個進程之間的通信,從而做到做進程操作。

    用到的關鍵函數是:memmapfile

    這里貼一個我自己做測試時用的demo,看不懂的可以在評論區問,看見了就會回復。

    注意:兩個進程不能同時訪問一塊內存空間,否則會報錯。
    (由于matlab語言在markdown格式下,沒有高亮,所以下面的兩個代碼塊是選擇的是c語言)
    第一個.m文件

    % 寫入一些數據 myData = (1:10)'; fileID = fopen('records.dat','w'); fwrite(fileID,myData,'double'); fclose(fileID); % 改變一些數據 while 1 m = memmapfile('records.dat','Format','double','Writable',true) ; m.Data(1) = m.Data(1)+1; disp(m.Data); clear m pause(1) end

    第二個.m文件

    %將內存空間'records.dat'的內容打印出來 while 1 m = memmapfile('records.dat','Format','double','Writable','false') ; disp(m.Data) clear m pause(1) end

    總結

    以上是生活随笔為你收集整理的matlab的多线程操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。