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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2546|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

線程通信之郵箱個(gè)人理解,有錯(cuò)望高人指正!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:82781 發(fā)表于 2015-6-13 16:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
線程和線程之間的通信可以靠郵箱來實(shí)現(xiàn),從而完成線程間的通信,我做了一個(gè)小實(shí)驗(yàn),來證明郵箱的建立和工作原理具體如下(其實(shí)很簡單):
首先找到系統(tǒng)提供API函數(shù)接口,總共7個(gè)接口函數(shù),只要關(guān)心四個(gè)就可以了,其他的視情況而定,分別是:
1:ACCEPT MESSAGE FROM MAILBOX
2:CREATE A MESSAGE MAILBOX
3.PEND ON MAILBOX FOR A MESSAGE
4.POST MESSAGE TO A MAILBOX
這四個(gè)函數(shù)就可以建立郵箱,等待,和發(fā)送消息,你要傳送的變量或者說消息,API提供的是一個(gè)萬能的VOID指針,所以你只要把你的消息搭載到郵箱里面就可以了,非常簡單方便,只是定義數(shù)據(jù)類型號(hào)的時(shí)候一定注意郵箱是時(shí)間控制塊的,所以一定要定義成時(shí)間類型的指針,這個(gè)不能搞錯(cuò),還有建立的時(shí)候可以見一個(gè)而空的,或者已經(jīng)有一則消息的都可以,視情況而定哦,很方便很簡單那。下面看看到底消息被放到了油桶的那個(gè)位置?
看定義如下:
   void    *OSEventPtr;     //這就是一則消息的指針存放的載體!非常關(guān)鍵!消息就是被放到這里面的,但是什嗎時(shí)間放,放什么,都是你決定的,API只是提供一個(gè)這樣的載體的結(jié)構(gòu),所以不得不驚嘆人家高人的水平啊,很牛叉。
下面是消息怎么被放進(jìn)郵筒的:
pevent->OSEventPtr = msg;  
這就是結(jié)果!和明顯了吧,這樣一則消息就駐留到內(nèi)存中的郵箱中等待被取,
消息怎么被取出?
  msg = pevent->OSEventPtr;
顯而易見的事情了!
你要做的就是做幾個(gè)指針接收這則消息就這么簡單那而已!
注意空郵箱是要初始化的,還有就是郵箱的個(gè)數(shù)是由任務(wù)控制塊決定在這里:
OSEventTbl[OS_MAX_EVENTS]
其實(shí)這個(gè)和就緒表是差不多的,也有一個(gè)指針指向空的任務(wù)控制塊池,持的大小也是用戶決定!相當(dāng)爽!指針入下: *OSEventFreeList;  ,這個(gè)是只想當(dāng)前空閑的任務(wù)控制塊!
這是APP
static  void  AppTask_LED (void *p_arg)
{
INT8U mistak_mabox_led;//消息錯(cuò)誤存儲(chǔ)
INT8U *mes;
    (void)p_arg;

    while (1)                  
    {  
      
mes=(INT8U*)OSMboxPend (MBOX_LED, (INT16U )0, &mistak_mabox_led);
    if(*mes==3)
    {
        LED_On();
        OSTimeDlyHMSM(0,0,0,500);
        LED_Off();
  OSTimeDlyHMSM(0,0,0,500);
  }
  else
  {
    LED_On();
        OSTimeDlyHMSM(0,0,3,0);
        LED_Off();
  OSTimeDlyHMSM(0,0,3,0);
  
  }
    }
}
static  void  AppTask_LED1 (void *p_arg)
{
  static INT8U tab[4]={2,4};

    (void)p_arg;
   

    while (1)
    {        
      
      OSMboxPost (MBOX_LED,&tab);
// OSTimeDlyHMSM(0,0,5,0);
    }
}
一個(gè)簡單的測試:消息=3執(zhí)行短循環(huán),反之執(zhí)行長循環(huán)!
   王均偉

沒發(fā)工資他大爺?shù)模?nbsp;           




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久一区 | 久久夜视频 | 精品1区2区 | 国产一区二区影院 | 一级片av| 一本大道久久a久久精二百 欧洲一区二区三区 | 午夜欧美 | 午夜视频在线免费观看 | 中文字幕在线精品 | 免费播放一级片 | 日本免费黄色一级片 | 国产欧美日韩综合精品一 | 国产在线第一页 | 91精品国产综合久久婷婷香蕉 | 欧美在线观看一区 | 91中文字幕在线观看 | 日本久久久一区二区三区 | 欧美性生活一区二区三区 | 亚洲免费在线播放 | 狠狠伊人| 激情欧美日韩一区二区 | 91久久国产综合久久 | 欧美一a一片一级一片 | www.伊人.com | 91精品国产91久久久久福利 | 日韩影音 | 国产成人av在线播放 | 亚洲二区视频 | 亚洲视频一区在线观看 | 亚洲精品九九 | 欧美激情久久久 | 欧美不卡网站 | 亚洲一区在线日韩在线深爱 | 超碰激情| 欧美精品福利视频 | 日本高清在线一区 | 国内精品久久久久久久 | 天天射中文| 亚洲男人天堂网 | 三a毛片 | 毛片免费观看 |