Object 內置對象

對象Event

事件對象

通過一個事件達到對一組纖程進行控制的目的(事件對象的狀態為bool類型)

繼承關係

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<class>Lock|new Lock()|acquire();release();count()] [<this>Event|new Event()|isSet();set();pulse();clear();wait()] [object] <:- [Lock] [Lock] <:- [Event] Lock new Lock() acquire() release() count() Event new Event() isSet() set() pulse() clear() wait() object toString() toJSON()

構造函數

Event

事件對象構造函數

1
new Event(Boolean value = false);

調用參數:

  • value: Boolean, 指定是否等待,為true 時等待,缺省為false

成員函數

isSet

判斷事件對像是否為真

1
Boolean Event.isSet();

返回結果:

  • Boolean, 如果事件為真,返回true

set

激活事件(將事件狀態改為true),並調用pulse()

1
Event.set();

pulse

激活等待該事件的所有纖程

1
Event.pulse();

clear

重置事件(將事件狀態改為false)

1
Event.clear();

wait

等待一個事件

1
Event.wait();

acquire

獲取鎖的擁有權

1
Boolean Event.acquire(Boolean blocking = true);

調用參數:

  • blocking: Boolean, 指定是否等待,為true 時等待,缺省為真

返回結果:

  • Boolean, 返回是否成功獲取鎖,為true 表示成功獲取

acquire 方法用於獲取鎖的擁有權,當鎖處於可獲取狀態時,此方法立即返回true。

當鎖不可獲取,且blocking 為true,則當前纖程進入休眠,當其他纖程釋放鎖後,此方法返回true。

當鎖不可獲取,且blocking 為false,則方法返回false。


release

釋放鎖的擁有權

1
Event.release();

此方法將釋放對鎖的擁有權,如果當前纖程未擁有鎖,此方法將拋出錯誤。


count

查詢當前等待任務數

1
Integer Event.count();

返回結果:

  • Integer, 返回任務數

toString

返回對象的字符串表示,一般返回"[Native Object]",對象可以根據自己的特性重新實現

1
String Event.toString();

返回結果:

  • String, 返回對象的字符串表示

toJSON

返回對象的JSON 格式表示,一般返回對象定義的可讀屬性集合

1
Value Event.toJSON(String key = "");

調用參數:

  • key: String, 未使用

返回結果:

  • Value, 返回包含可JSON 序列化的值