久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3112|回復: 1
收起左側

時間片輪詢法中,如何處理同一時間不同任務

[復制鏈接]
ID:505446 發表于 2019-4-5 19:01 | 顯示全部樓層 |閱讀模式
Task_Struct tasks[] =
{
   {0,200,200,task1},  //用各個任務的函數名初始化
   {0,60,60,task2},
   {0,100,100,task3},
   {0,10,10,task4}
};     
比如在此任務數組中有4個任務,但是每個任務的時間片是不同的。200ms/60ms/100ms/10ms
所以能在4個不同時間片執行相應的任務。
我的問題是在同一個時間片如何處理不同任務?
比如定時60秒的時間片,60秒到要處理顯示更新以及倒計時這兩個任務該如何解決?
(1)Task_Struct tasks[] =
{
     {0,60,60,task1},//任務一顯示更新
     {0,60,60,task2},//任務二倒計時
}
(2)Task_Struct tasks[] =
{
     {0,60,60,task1}
}

void task1()
{
      work1();//任務一顯示更新
      work2();//任務二倒計時
}
這兩種方法行不行的通?或者有沒更好的方法能夠解決?
注:關于時間片輪解釋如下
回復

使用道具 舉報

ID:323651 發表于 2020-12-26 13:52 | 顯示全部樓層
需要注意的是,這種方法的前提是執行的 每個任務都是短小精悍的,要不然一個任務執行的時間過長,大于其它任務設置的時間片值,那其它任務就無法保證按它預設的時間片來執行。

尤其需要注意任務中延時的使用,可能會產生不可預料的結果。如果任務內部需要延時的時候,或者說單個任務過長,需要保存任務執行到一半的狀態,建議使用狀態機切割長任務。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线观看免费av网站 | 日韩1区 | 激情久久网 | 中文字幕高清一区 | 欧美日韩国产一区二区三区 | 精品视频国产 | 岛国av免费看 | 黄色毛片免费 | 不卡av在线 | 一区二区高清 | 91在线 | 久久一级 | 波多野结衣中文视频 | 成人午夜免费在线视频 | 黑人巨大精品欧美黑白配亚洲 | 久热免费 | jdav视频在线观看免费 | 日日夜夜91 | 福利视频一区二区三区 | 国产三级| 精品国产免费一区二区三区演员表 | 国产精品久久久久久久久污网站 | 精品乱码一区二区三四区视频 | 91国内在线观看 | 欧美a级成人淫片免费看 | 欧美视频免费在线 | 一级片网址 | 九九九视频在线观看 | 亚洲精品久久久久国产 | 国产一二区免费视频 | 色先锋影音 | 草草影院ccyy | 国产精品亚洲成在人线 | 波多野结衣一区二区 | 日韩精品亚洲专区在线观看 | 国产免费一区二区 | 国产精品国产精品国产专区不片 | 日韩欧美一区二区三区 | 久久久久久国模大尺度人体 | 日韩精品一区二区三区视频播放 | 亚洲播放一区 |