mFrame
載入中...
搜尋中...
無符合項目
mframe::lang::Object 類別 參考文件
類別mframe::lang::Object的繼承圖:
mframe::lang::Interface chip::Processor chip::clock::Clock chip::ctimer::CTIMER chip::fmu::FMU chip::glikey::GLIKEY chip::gpio::GPIO chip::lpi2c::LPI2C chip::lpuart::LPUART chip::mbc::MBC chip::mrcc::MRCC chip::port::Port chip::reset::Reset chip::scg::SCG chip::spc::SPC chip::syscon::SYSCON chip::trdc::TRDC chip::vbat::VBAT cmsisrtx5::CmsisRTX5Kernel core::CoreChip core::CoreEdgeTriggerPin core::CoreGeneralPin core::CoreGeneralPort core::CoreHardwareInfo core::CoreIIC core::CoreInterrupt core::CoreMux core::CorePulseWidth core::CorePulseWidthChannel core::CoreUSART hal::analog::VirtualAnalogInputPin hal::analog::Voltmeter hal::digital::VirtualGeneralPin hal::serial::SerialBus hal::serial::SerialPort mframe::func::BiConsumerEvent mframe::func::BiConsumerMethod mframe::func::ConsumerEvent mframe::func::ConsumerMethod mframe::func::FunctionEvent mframe::func::FunctionMethod mframe::func::RunnableEvent mframe::func::RunnableMethod mframe::func::SupplierEvent mframe::func::SupplierMethod mframe::io::ByteBuffer mframe::io::SimpleInputStream mframe::io::SimpleOutputStream mframe::lang::Character mframe::lang::HashGenerator mframe::lang::Hashcode mframe::lang::Maths mframe::lang::Pointer mframe::lang::Pointers mframe::lang::StringFormat mframe::lang::System mframe::numb::Booleans mframe::numb::Bytes mframe::numb::Floats mframe::numb::Integers mframe::numb::Number mframe::numb::Shorts mframe::sys::DefaultAllocator mframe::sys::EntryPoint mframe::sys::Svchost mframe::sys::Thread mframe::sys::Timer mframe::util::ArrayMap mframe::util::ArrayMap::Entry mframe::util::ArrayMap::Iterator mframe::util::Base64 mframe::util::CompletionWaiter mframe::util::PArray mframe::util::PArrayQueue mframe::util::PFuture mframe::util::Scanner

公開方法(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::ObjectgetObject (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::ThreadcurrentThread (void) const
 取得當前的執行緒
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 mframe::lang::Interface
virtual ~Interface (void)=default
 Destroy the struct object.
 

函式成員說明文件

◆ currentThread()

mframe::sys::Thread * mframe::lang::Object::currentThread ( void ) const

取得當前的執行緒

傳回值
null 執行緒取得失敗,可能正在執行中斷事件或是系統並未啟動
Thread 當前執行緒

◆ delay()

void mframe::lang::Object::delay ( int milliseconds) const

函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。

參數
milliseconds- time ticks value

◆ equals() [1/2]

bool mframe::lang::Object::equals ( Object & object) const

函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。

equals方法在非空對象引用上實現等價關係:

  • 自反性:對於任何非空的參考值 x , x.equals(x)應該返回 true 。
  • 它是對稱的:對於任何非空引用值x和y,x.equals(y)應該返回true當且僅當 y.equals(x)回報 true 。
  • 傳遞性:對於任何非空引用值x,y和z,如果x.equals(y)回報true個y.equals(z)回報true,然 後x.equals(z)應該返回true 。
  • 它是一致的:對於任何非空引用值x和y,多次調用 x.equals(y)始終返回true或始終返回false,沒 有設置中使用的信息 equals比較上的對像被修改。
  • 對於任何非空的參考值x,x.equals(null)應該返回 false 。

該 equals類方法 Object實現對像上差別可能性最大的相等關係; 也就是說,對於任何非空的參考值x和y,當且僅當 x和 y引用相同的對象( x == y具有值 true ) 時,該方法返回 true 。

請注意,無論何時覆蓋該方法,通常需要覆蓋 hashCode方法,以便維護 hashCode方法的通用合同,該 方法規定相等的對象必須具有相等的哈希碼。

參數
object- 與之比較的參考對象,參考型態。
傳回值
true - 如果此對象與object參數相同。
false - 如果此對象與object參數不相同。

◆ equals() [2/2]

bool mframe::lang::Object::equals ( Object * object) const

函數 delay 等待內核滴答中指定的時間段。 對於1的值,系統等待直到下一個計時器滴答發生。 實際時間延遲最多可能比指定時間少一個計時器滴答聲,即在下一個系統滴答聲發生之前立即調用 osDelay(1),線程會立即重新安排。

equals方法在非空對象引用上實現等價關係:

  • 自反性:對於任何非空的參考值 x , x.equals(x)應該返回 true 。
  • 它是對稱的:對於任何非空引用值x和y,x.equals(y)應該返回true當且僅當 y.equals(x)回報 true 。
  • 傳遞性:對於任何非空引用值x,y和z,如果x.equals(y)回報true個y.equals(z)回報true, 然後x.equals(z)應該返回true 。
  • 它是一致的:對於任何非空引用值x和y,多次調用 x.equals(y)始終返回true或始終返回false, 沒有設置中使用的信息 equals比較上的對像被修改。
  • 對於任何非空的參考值x,x.equals(null)應該返回 false 。

該 equals類方法 Object實現對像上差別可能性最大的相等關係; 也就是說,對於任何非空的參考值x和y,當且僅當 x和 y引用相同的對象( x == y具有值 true ) 時,該方法返回 true 。

請注意,無論何時覆蓋該方法,通常需要覆蓋 hashCode方法,以便維護 hashCode方法的通用合同,該 方法規定相等的對象必須具有相等的哈希碼。

參數
object- 與之比較的參考對象,指標型態。
傳回值
true - 如果此對象與object參數相同。
false - 如果此對象與object參數不相同。

◆ getObject()

mframe::lang::Object & mframe::lang::Object::getObject ( void )
overridevirtual

取得類Object

傳回值
mframe::lang::Object&

實作 mframe::lang::Interface.

◆ hashcode()

virtual int mframe::lang::Object::hashcode ( void ) const
virtual

返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。

傳回值
uint32 該對象的哈希碼值。

mframe::lang::Hashcode, mframe::lang::Strings, 及 mframe::numb::Number重新實作.

◆ lock()

int mframe::lang::Object::lock ( void ) const

核心鎖定,在調用unlock以前將不會進行執行緒切換

傳回值
int lock調用層數

◆ operator new() [1/2]

void * mframe::lang::Object::operator new ( size_t n)
參數
n
傳回值
void*

◆ operator new() [2/2]

void * mframe::lang::Object::operator new ( size_t n,
void * p )
參數
n
p
傳回值
void*

◆ unlock()

int mframe::lang::Object::unlock ( void ) const

核心解鎖。

傳回值
int lock調用剩餘層數,當值為0時核心解鎖,開始執行緒切換

◆ wait() [1/2]

bool mframe::lang::Object::wait ( int timeout) const

導致當前線程等待,直到另一個線程調用此對象的 notify()方法或 notifyAll()方法,或其他一些線 程中斷當前線程,或一定量的實時時間。

這種方法類似於一個參數的 wait方法,但它允許對放棄之前等待通知的時間進行更精細的控制。 以納 秒為單位的實時數量由下式給出:

1000000*超時+納米

在所有其他方面,該方法與一個參數的方法 wait(long)相同。 特別是, wait(0, 0)意味著同樣的事 情 wait(0) 。

當前的線程必須擁有該對象的顯示器。 線程釋放此監視器的所有權,並等待直到發生以下兩種情況之一:

  • 另一個線程通知等待該對象的監視器的線程通過調用 notify方法或 notifyAll方法來喚醒。
  • timeout毫秒加 nanos納秒參數指定的超時時間已過。

然後線程等待,直到它可以重新獲得監視器的所有權並恢復執行。

像在一個參數版本中,中斷和虛假喚醒是可能的,並且該方法應該始終在循環中使用:

while(<condition does not hold>){
this->wait(timeout);
... // Perform action appropriate to condition
}
void wait(void) const
導致當前線程等待,直到另一個線程調用此對象的notify()方法或notifyAll()方法,或指定的時間 已過。
Definition Object.h:208
參數
timeout- 以毫秒為單位等待的最長時間。
傳回值
true
  • 執行含式成功並且已被notify
  • 已經到達timeout時間
false
  • 如果超時值為負值或是值不在0-999999範圍內。
  • 無法在中斷時被呼叫。

◆ wait() [2/2]

void mframe::lang::Object::wait ( void ) const
inline

導致當前線程等待,直到另一個線程調用此對象的notify()方法或notifyAll()方法,或指定的時間 已過。

當前的線程必須擁有該對象的顯示器。

此方法使當前線程(稱為T )將其放置在該對象的等待集中,然後放棄對該對象的任何和所有同步聲明。 線程T變得禁用線程調度目的,並且休眠,直到發生四件事情之一:

  • 一些其他線程調用該對象的notify方法,並且線程T恰好被任意選擇為被喚醒的線程。
  • 某些其他線程調用此對象的notifyAll方法。
  • 一些其他線程interrupts線程T。

然後從該對象的等待集中刪除線程T ,並重新啟用線程調度。然後它以通常的方式與其他線程競爭在對像 上進行同步的權限; 一旦獲得了對象的控制,其對對象的所有同步聲明就恢復到現狀 - 也就是在調用wait方法之後的情況。 線程T然後從調用wait方法返回。因此,從返回wait方法,對象和線程的同步狀態T正是因為它是當wait 被調用的方法。

線程也可以喚醒,而不會被通知,中斷或超時,即所謂的虛假喚醒 。雖然這在實踐中很少會發生, 但應用程序必須通過測試應該使線程被喚醒的條件來防範,並且如果條件不滿足則繼續等待。 換句話說,等待應該總是出現在循環中,就像這樣:

while(<condition does not hold>){
this->wait();
... // Perform action appropriate to condition
}
傳回值
true:
  • 執行含式成功並且已被notify
false:
  • 無法在中斷時被呼叫。

◆ yield()

bool mframe::lang::Object::yield ( void ) const

函數yield()將控制權傳遞給處於READY狀態且具有相同優先級的下一個線程。 如果在READY狀態下沒有其他優先級相同的線程,則當前線程繼續執行,不會發生線程切換。

函數yield()不會將線程設置為BLOCKED狀態。 因此,即使處於READY狀態的線程可用,也不會調度優 先級較低的線程。

傳回值
true
  • 成功發生線程切換
false
  • 無發生現程切換,可能無相同優先級需求
  • 無法在中斷時被呼叫。

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