mFrame
載入中...
搜尋中...
無符合項目
ufm::sys::Thread 類別 參考文件abstract

執行緒類別 更多...

#include <Thread.h>

類別ufm::sys::Thread的繼承圖:
ufm::lang::Object ufm::lang::Interface cmsisrtx5::CmsisRTX5Thread ufm::sys::TinyKernel

公開方法(Public Methods)

 Thread (void)
 建構執行緒物件
 
virtual ~Thread (void) override
 解構執行緒物件
 
virtual const char * getThreadName (void) const override
 取得執行緒名稱
 
virtual ufm::sys::ThreadPriority getPriority (void) const override
 取得執行緒優先權
 
virtual ufm::sys::ThreadState getState (void) const override
 取得執行緒狀態
 
virtual int getStackSize (void) const override
 取得執行緒堆疊大小
 
virtual bool start (const char *name, ufm::sys::ThreadPriority priority) override
 以指定名稱和優先權啟動執行緒
 
virtual void notify (void) override
 通知執行緒,喚醒等待中的執行緒
 
virtual bool setPriority (ufm::sys::ThreadPriority priority) override
 設定執行緒優先權
 
bool start (const char *name)
 以預設優先權啟動執行緒
 
bool isActive (void)
 檢查執行緒是否處於活動狀態
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Object
void * operator new (size_t n)
 使用運算子 new 分配記憶體
 
void * operator new (size_t n, void *p)
 在指定記憶體上調用運算子 new
 
virtual ufm::lang::ObjectgetObject (void) override
 取得對應的 Object 物件
 
void delay (int milliseconds) const
 延遲指定的毫秒數進行執行緒等待
 
bool equals (Object *object) const
 判斷與另一物件是否為相同參照(指標型態比較)
 
bool equals (Object &object) const
 判斷與另一物件是否為相同參照(參照型態比較)
 
void wait (void) const
 使當前線程等待直到被通知
 
bool wait (int timeout) const
 等待通知或超時
 
bool yield (void) const
 讓執行緒讓渡控制權給同優先權的下一個執行緒
 
int lock (void) const
 核心鎖定,鎖定期間禁止線程切換
 
int unlock (void) const
 核心解鎖
 
ufm::sys::ThreadcurrentThread (void) const
 取得當前執行緒指標
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Interface
virtual ~Interface (void)=default
 虛擬析構函式
 

詳細描述

執行緒類別

提供建立、啟動和控制系統執行緒的功能,包括設定優先權、 取得執行緒狀態等操作。此類別為系統任務管理提供統一介面, 支持多工環境下的並行處理能力。

執行緒生命週期:

  1. 建立:執行緒對象實例化,但尚未運行
  2. 啟動:通過start()方法啟動執行緒
  3. 執行:執行緒執行其關聯的Runnable任務
  4. 等待/阻塞:執行緒可能等待資源或被通知
  5. 終止:任務完成後,執行緒結束
核心實現功能由子類別提供,此類別為抽象基礎

建構子與解構子說明文件

◆ Thread()

ufm::sys::Thread::Thread ( void )

建構執行緒物件

建立執行緒實例,但不會自動啟動。執行緒在建立時會分配必要的系統資源, 但直到呼叫start()方法前不會實際運行。

建構後的執行緒處於INACTIVE狀態

◆ ~Thread()

virtual ufm::sys::Thread::~Thread ( void )
overridevirtual

解構執行緒物件

執行緒物件被釋放時呼叫。此方法會清理執行緒佔用的系統資源, 但不保證能正確終止正在運行的執行緒。

警告
若執行緒仍在運行,解構可能造成不可預期的行為, 應先確保執行緒已安全終止再釋放物件

函式成員說明文件

◆ getPriority()

virtual ufm::sys::ThreadPriority ufm::sys::Thread::getPriority ( void ) const
pure virtual

取得執行緒優先權

獲取此執行緒的當前優先權等級,影響調度器對此執行緒的處理優先性。

傳回值
ufm::sys::ThreadPriority 執行緒當前的優先權等級

實作於 cmsisrtx5::CmsisRTX5Thread, 及 ufm::sys::TinyKernel.

◆ getStackSize()

virtual int ufm::sys::Thread::getStackSize ( void ) const
pure virtual

取得執行緒堆疊大小

獲取分配給此執行緒的堆疊記憶體大小。堆疊用於儲存區域變數、 函數調用信息以及執行緒上下文資料。

傳回值
int 執行緒堆疊的大小(位元組)

實作於 cmsisrtx5::CmsisRTX5Thread, 及 ufm::sys::TinyKernel.

◆ getState()

virtual ufm::sys::ThreadState ufm::sys::Thread::getState ( void ) const
pure virtual

取得執行緒狀態

獲取此執行緒的當前運行狀態,如READY、RUNNING、BLOCKED等。

傳回值
ufm::sys::ThreadState 執行緒當前的運行狀態
參閱
ufm::sys::ThreadState 了解可能的狀態值

實作於 cmsisrtx5::CmsisRTX5Thread, 及 ufm::sys::TinyKernel.

◆ getThreadName()

virtual const char * ufm::sys::Thread::getThreadName ( void ) const
pure virtual

取得執行緒名稱

獲取此執行緒的識別名稱,用於偵錯和日誌記錄。

傳回值
const char* 執行緒名稱字串,不為null

實作於 cmsisrtx5::CmsisRTX5Thread, 及 ufm::sys::TinyKernel.

◆ isActive()

bool ufm::sys::Thread::isActive ( void )

檢查執行緒是否處於活動狀態

判斷執行緒是否已啟動且尚未終止。活動的執行緒可能處於運行中、 就緒或阻塞狀態,但不包括未啟動或已終止的狀態。

傳回值
true 執行緒處於活動狀態(READY、RUNNING、BLOCKED或TERMINATED)
false 執行緒未處於活動狀態(INACTIVE或ERROR)

◆ notify()

virtual void ufm::sys::Thread::notify ( void )
pure virtual

通知執行緒,喚醒等待中的執行緒

將執行緒從等待狀態喚醒,使其可以繼續執行。 若執行緒未處於等待狀態,則此操作無效。

此方法通常由其他執行緒調用,實現執行緒間的同步

實作於 cmsisrtx5::CmsisRTX5Thread, 及 ufm::sys::TinyKernel.

◆ setPriority()

virtual bool ufm::sys::Thread::setPriority ( ufm::sys::ThreadPriority priority)
pure virtual

設定執行緒優先權

動態調整執行緒的優先權等級,影響其在調度時的優先次序。 優先權越高,越容易獲得處理器時間。

參數
priority要設定的新優先權
傳回值
true 優先權設定成功
false 優先權設定失敗,可能權限不足或執行緒狀態不允許

實作於 cmsisrtx5::CmsisRTX5Thread, 及 ufm::sys::TinyKernel.

◆ start() [1/2]

bool ufm::sys::Thread::start ( const char * name)

以預設優先權啟動執行緒

使用標準優先權(NORMAL)啟動執行緒的簡化方法。 適合一般應用場景,無需特別調整優先權的情況。

參數
name執行緒名稱
傳回值
true 執行緒成功啟動
false 執行緒啟動失敗

◆ start() [2/2]

virtual bool ufm::sys::Thread::start ( const char * name,
ufm::sys::ThreadPriority priority )
pure virtual

以指定名稱和優先權啟動執行緒

使執行緒開始執行其關聯的Runnable任務。執行緒將被調度器管理, 根據系統負載和優先權進行調度。

參數
name執行緒名稱,用於識別
priority執行緒優先權,決定調度順序
傳回值
true 執行緒成功啟動
false 執行緒啟動失敗,可能已在運行或資源不足

實作於 cmsisrtx5::CmsisRTX5Thread, 及 ufm::sys::TinyKernel.


此類別(class) 文件是由下列檔案中產生: