mFrame
|
公開方法(Public Methods) | |
Object (void) | |
Construct a new Object object. | |
virtual | ~Object (void) override |
Destroy the Object object. | |
void * | operator new (size_t n) |
void * | operator new (size_t n, void *p) |
mframe::lang::Object & | getObject (void) override |
取得類Object | |
void | delay (int milliseconds) const |
函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。 | |
bool | equals (Object *object) const |
函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。 | |
bool | equals (Object &object) const |
函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。 | |
void | wait (void) const |
導致當前線程等待,直到另一個線程調用此對象的notify()方法或notifyAll()方法,或指定的時間 已過。 | |
bool | wait (int timeout) const |
導致當前線程等待,直到另一個線程調用此對象的 notify()方法或 notifyAll()方法,或其他一些線 程中斷當前線程,或一定量的實時時間。 | |
bool | yield (void) const |
函數yield()將控制權傳遞給處於READY狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。 | |
int | lock (void) const |
核心鎖定,在調用unlock以前將不會進行執行緒切換 | |
int | unlock (void) const |
核心解鎖。 | |
mframe::sys::Thread * | currentThread (void) const |
取得當前的執行緒 | |
virtual int | hashcode (void) const |
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
![]() | |
virtual | ~Interface (void)=default |
Destroy the struct object. | |
mframe::sys::Thread * mframe::lang::Object::currentThread | ( | void | ) | const |
取得當前的執行緒
void mframe::lang::Object::delay | ( | int | milliseconds | ) | const |
函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
milliseconds | - time ticks value |
bool mframe::lang::Object::equals | ( | Object & | object | ) | const |
函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
equals方法在非空對象引用上實現等價關係:
該 equals類方法 Object實現對像上差別可能性最大的相等關係; 也就是說,對於任何非空的參考值x和y,當且僅當 x和 y引用相同的對象( x == y具有值 true ) 時,該方法返回 true 。
請注意,無論何時覆蓋該方法,通常需要覆蓋 hashCode方法,以便維護 hashCode方法的通用合同,該 方法規定相等的對象必須具有相等的哈希碼。
object | - 與之比較的參考對象,參考型態。 |
bool mframe::lang::Object::equals | ( | Object * | object | ) | const |
函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。
equals方法在非空對象引用上實現等價關係:
該 equals類方法 Object實現對像上差別可能性最大的相等關係; 也就是說,對於任何非空的參考值x和y,當且僅當 x和 y引用相同的對象( x == y具有值 true ) 時,該方法返回 true 。
請注意,無論何時覆蓋該方法,通常需要覆蓋 hashCode方法,以便維護 hashCode方法的通用合同,該 方法規定相等的對象必須具有相等的哈希碼。
object | - 與之比較的參考對象,指標型態。 |
|
overridevirtual |
|
virtual |
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
在mframe::lang::Hashcode, mframe::lang::Strings, 及 mframe::numb::Number重新實作.
int mframe::lang::Object::lock | ( | void | ) | const |
核心鎖定,在調用unlock以前將不會進行執行緒切換
void * mframe::lang::Object::operator new | ( | size_t | n | ) |
n |
void * mframe::lang::Object::operator new | ( | size_t | n, |
void * | p ) |
n | |
p |
int mframe::lang::Object::unlock | ( | void | ) | const |
核心解鎖。
bool mframe::lang::Object::wait | ( | int | timeout | ) | const |
導致當前線程等待,直到另一個線程調用此對象的 notify()方法或 notifyAll()方法,或其他一些線 程中斷當前線程,或一定量的實時時間。
這種方法類似於一個參數的 wait方法,但它允許對放棄之前等待通知的時間進行更精細的控制。 以納 秒為單位的實時數量由下式給出:
1000000*超時+納米
在所有其他方面,該方法與一個參數的方法 wait(long)相同。 特別是, wait(0, 0)意味著同樣的事 情 wait(0) 。
當前的線程必須擁有該對象的顯示器。 線程釋放此監視器的所有權,並等待直到發生以下兩種情況之一:
然後線程等待,直到它可以重新獲得監視器的所有權並恢復執行。
像在一個參數版本中,中斷和虛假喚醒是可能的,並且該方法應該始終在循環中使用:
timeout | - 以毫秒為單位等待的最長時間。 |
|
inline |
導致當前線程等待,直到另一個線程調用此對象的notify()方法或notifyAll()方法,或指定的時間 已過。
當前的線程必須擁有該對象的顯示器。
此方法使當前線程(稱為T )將其放置在該對象的等待集中,然後放棄對該對象的任何和所有同步聲明。 線程T變得禁用線程調度目的,並且休眠,直到發生四件事情之一:
然後從該對象的等待集中刪除線程T ,並重新啟用線程調度。然後它以通常的方式與其他線程競爭在對像 上進行同步的權限; 一旦獲得了對象的控制,其對對象的所有同步聲明就恢復到現狀 - 也就是在調用wait方法之後的情況。 線程T然後從調用wait方法返回。因此,從返回wait方法,對象和線程的同步狀態T正是因為它是當wait 被調用的方法。
線程也可以喚醒,而不會被通知,中斷或超時,即所謂的虛假喚醒 。雖然這在實踐中很少會發生, 但應用程序必須通過測試應該使線程被喚醒的條件來防範,並且如果條件不滿足則繼續等待。 換句話說,等待應該總是出現在循環中,就像這樣:
bool mframe::lang::Object::yield | ( | void | ) | const |
函數yield()將控制權傳遞給處於READY狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。
函數yield()不會將線程設置為BLOCKED狀態。 因此,即使處於READY狀態的線程可用,也不會調度優 先級較低的線程。