输入/搜索内容
内置函数
Global
Log
Market
Trade
Account
Futures
Threads
threading
Thread
ThreadLock
ThreadEvent
ThreadCondition
ThreadCondition.notify
ThreadCondition.notifyAll
ThreadCondition.wait
ThreadCondition.acquire
ThreadCondition.release
ThreadDict
Server
TA
Talib
OS
结构体
内置变量

唤醒一个正在等待的线程(如果存在)。只有调用了wait()方法的线程才能被唤醒。

notify()

示例

使用notify()函数唤醒等待中的线程。

javascript
function consumer(dict, condition) { while (true) { condition.acquire() while (dict.get("array").length == 0) { Log(threading.currentThread().name(), "wait()...", ", array:", dict.get("array")) condition.wait() } var arr = dict.get("array") var num = arr.shift() Log(threading.currentThread().name(), ", num:", num, ", array:", arr, "#FF0000") dict.set("array", arr) Sleep(1000) condition.release() } } function main() { var condition = threading.Condition() var dict = threading.Dict() dict.set("array", []) var t1 = threading.Thread(consumer, dict, condition) var t2 = threading.Thread(consumer, dict, condition) var t3 = threading.Thread(consumer, dict, condition) Sleep(1000) var i = 0 while (true) { condition.acquire() var msg = "" var arr = dict.get("array") var randomNum = Math.floor(Math.random() * 5) + 1 if (arr.length >= 3) { condition.notifyAll() msg = "notifyAll" } else { arr.push(i) dict.set("array", arr) if (randomNum > 3 && arr.length > 0) { condition.notify() msg = "notify" } else { msg = "pass" } i++ } Log(_D(), "randomNum:", randomNum, ", array:", arr, ", msg:", msg) condition.release() Sleep(1000) } }

参考

备注

notify()函数会唤醒等待队列中的一个线程。

notify()函数唤醒线程时,该线程会重新获取线程锁。