![]() |
mFrame
|
公開方法(Public Methods) | |
TinyKernel (void(*reboot)(void)) | |
Construct a new object. | |
virtual | ~TinyKernel (void) override |
Destroy the object. | |
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 |
設定執行緒優先權 | |
virtual bool | initialize (void) override |
核心初始化 | |
virtual void | start (ufm::func::Runnable *task) override |
核心啟動 | |
virtual int | systemLock (void) override |
核心鎖定 | |
virtual int | systemUnlock (void) override |
核心解鎖 | |
virtual bool | systemDelay (int milliseconds) const override |
執行緒延遲 | |
virtual bool | systemWait (int timeout) const override |
執行緒等待 | |
virtual void | reboot (void) override |
核心重新啟動 | |
virtual ufm::sys::Thread * | getCurrentThread (void) override |
取得當前執行緒 | |
virtual bool | systemYield (void) override |
讓出執行時間片段 | |
![]() | |
Thread (void) | |
建構執行緒物件 | |
virtual | ~Thread (void) override |
解構執行緒物件 | |
bool | start (const char *name) |
以預設優先權啟動執行緒 | |
bool | isActive (void) |
檢查執行緒是否處於活動狀態 | |
![]() | |
void * | operator new (size_t n) |
使用運算子 new 分配記憶體 | |
void * | operator new (size_t n, void *p) |
在指定記憶體上調用運算子 new | |
virtual ufm::lang::Object & | getObject (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::Thread * | currentThread (void) const |
取得當前執行緒指標 | |
virtual int | hashcode (void) const |
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
![]() | |
virtual | ~Interface (void)=default |
虛擬析構函式 | |
|
overridevirtual |
取得當前執行緒
獲取當前正在CPU上執行的執行緒物件。 用於執行緒需要參照自身或取得自己相關資訊時。
實作 ufm::sys::Kernel.
|
overridevirtual |
取得執行緒優先權
獲取此執行緒的當前優先權等級,影響調度器對此執行緒的處理優先性。
實作 ufm::sys::Thread.
|
overridevirtual |
|
overridevirtual |
取得執行緒狀態
獲取此執行緒的當前運行狀態,如READY、RUNNING、BLOCKED等。
實作 ufm::sys::Thread.
|
overridevirtual |
|
overridevirtual |
核心初始化
初始化作業系統核心元件和必要資源。所有核心相關方法的呼叫 必須在初始化完成後進行,否則可能導致未定義行為。
實作 ufm::sys::Kernel.
|
overridevirtual |
通知執行緒,喚醒等待中的執行緒
將執行緒從等待狀態喚醒,使其可以繼續執行。 若執行緒未處於等待狀態,則此操作無效。
實作 ufm::sys::Thread.
|
overridevirtual |
|
overridevirtual |
設定執行緒優先權
動態調整執行緒的優先權等級,影響其在調度時的優先次序。 優先權越高,越容易獲得處理器時間。
priority | 要設定的新優先權 |
實作 ufm::sys::Thread.
|
overridevirtual |
以指定名稱和優先權啟動執行緒
使執行緒開始執行其關聯的Runnable任務。執行緒將被調度器管理, 根據系統負載和優先權進行調度。
name | 執行緒名稱,用於識別 |
priority | 執行緒優先權,決定調度順序 |
實作 ufm::sys::Thread.
|
overridevirtual |
|
overridevirtual |
執行緒延遲
使當前執行緒暫停指定的時間,並讓出CPU資源給其他執行緒。 延遲精度取決於系統時鐘解析度和排程器負載。
milliseconds | 延遲時間,單位為毫秒 |
實作 ufm::sys::Kernel.
|
overridevirtual |
核心鎖定
鎖定系統核心,暫停執行緒切換。當需要執行原子操作或訪問共享資源時, 可使用此方法避免被其他執行緒中斷。鎖定可以巢狀調用。
實作 ufm::sys::Kernel.
|
overridevirtual |
|
overridevirtual |
執行緒等待
使當前執行緒進入等待狀態,直到被喚醒或等待超時。 等待期間執行緒會讓出處理器資源,不消耗CPU時間。
timeout | 等待超時時間(毫秒),0表示永久等待直到被notify()喚醒 |
實作 ufm::sys::Kernel.
|
overridevirtual |
讓出執行時間片段
將控制權讓給相同優先權的其他就緒執行緒。如果沒有其他相同優先權 的就緒執行緒,則當前執行緒會繼續執行。
與systemDelay和systemWait不同,此方法不會使執行緒進入阻塞狀態, 僅主動讓出本輪執行時間。
實作 ufm::sys::Kernel.