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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2485|回復: 0
收起左側

線程通信之郵箱個人理解,有錯望高人指正!

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

沒發工資他大爺的!            




回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品在线网站 | 日韩欧美三区 | 337p日本欧洲亚洲大胆精蜜臀 | 亚洲高清电影 | 国产视频综合 | 欧美国产精品一区二区三区 | 毛片一级网站 | 国产女人第一次做爰毛片 | 欧美日韩一区二区电影 | 噜噜噜噜狠狠狠7777视频 | 欧美精品在欧美一区二区少妇 | 天天草天天射 | 欧美三级电影在线播放 | 超碰97免费在线 | 99国产精品久久久久老师 | 国产美女特级嫩嫩嫩bbb片 | 天天干天天玩天天操 | 久久久日韩精品一区二区三区 | 日韩第一页| 毛片a级 | 自拍偷拍亚洲一区 | 一级特黄a大片 | 欧美精品一区二区三区在线 | 亚洲免费精品 | 狠狠色综合网站久久久久久久 | 日韩毛片网 | 欧美黄色片 | 国产欧美日韩久久久 | 黄色一级电影免费观看 | 精品1区 | 亚洲精品视频在线 | 成人午夜黄色 | 国产成人精品高清久久 | 国产一区二区三区四区hd | yeyeav| 成人一区二区三区在线观看 | 亚洲高清av在线 | 中文字幕一区二区三区四区五区 | 中文字幕国产视频 | 91人人视频在线观看 | 日本三级在线网站 |