您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關EA畫UML時序圖中如何實現并行和臨界區,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
并行(parallel)
定義
并行是表明多重交互的復合片段,其行為是并發執行的。
并行結構有兩個或更多的操作域,每個操作域中的消息按順序執行,但并行操作域之間的消息可以按照任何次序執行。
示例
上圖中Actor1,Actor2,Actor3分別位于各自的操作域中,各自獨立地和HttpServer進行交互。
臨界區(critical region)
定義
臨界區表示受保護的處理區域,區域中的處理不可以和其他并行區域中的處理交錯執行。
示例
這里用兩個任務之間轉送數據的處理為例說明。先看圖。
::ControlTask和::UserInterface生命線的方框兩側都多了兩條豎線,這表明,這兩個類都是主動類,擁有自己的上下文。DataTransmitter的職責就是在將數據從::ControlTask傳送到::UserInterface,步驟如下:
::ControlTask調用DataTransmitter的push方法,推送數據。
DataTransmitter調用push方法將數據推送給DataList。DataList的push方法處于臨界區中,不會被其他任務打斷。
::ControlTask調用Notify方法向::UserInterface發出數據傳送完畢的通知。注意:此處為異步調用。
::UserInterface收到通知以后,調用DataTransmitter的pull方法,取得數據。這個動作會執行多次直到數據取完為止。
DataTransmitter的pull方法會調用DataList的pull方法,這個pull方法也是處于臨界區中,不會被其他任務打斷。
關于“EA畫UML時序圖中如何實現并行和臨界區”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。