وسائل لوڈ ہو رہے ہیں... لوڈنگ...

مطلع کرنا

کےnotify()فنکشن انتظار میں تھریڈ (اگر کوئی ہے تو) کو بیدار کرنے کے لئے استعمال کیا جاتا ہے. صرف تھریڈ ہے کہ بلایا ہےwait()طریقہ کار جاگ جائے گا.

مطلع کریں

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()فنکشن انتظار کی قطار میں ایک موضوع کو بیدار کرتا ہے.

جبnotify()تقریب ایک دھاگہ کو بیدار کرتا ہے، دھاگہ دھاگہ مقفل دوبارہ حاصل کرے گا.

{@fun/Threads/ThreadCondition/notifyAll notifyAll}، {@fun/Threads/ThreadCondition/wait wait}، {@fun/Threads/ThreadCondition/acquire acquire}، {@fun/Threads/ThreadCondition/release release}

تھریڈ واقعہ سب کو مطلع کریں