রিসোর্স লোড হচ্ছে... লোডিং...

শর্ত

দ্যCondition()ফাংশনটি একটি শর্ত পরিবর্তনশীল বস্তু তৈরি করতে ব্যবহৃত হয়, যা মাল্টি-থ্রেডেড সমান্তরাল পরিবেশে থ্রেডগুলির মধ্যে সিঙ্ক্রোনাইজেশন এবং যোগাযোগ অর্জনের জন্য ব্যবহৃত হয়।Condition(), একটি থ্রেড নির্দিষ্ট শর্ত পূরণ না হলে অপেক্ষা করতে পারে যতক্ষণ না অন্য থ্রেড এটিকে জানায় যে শর্তটি পূরণ হয়েছে।

দ্যCondition()ফাংশন a প্রদান করেThreadCondition object.

ThreadConditionবস্তু

অবস্থা (((

function consumer(productionQuantity, dict, condition) {
    for (var i = 0; i < productionQuantity; i++) {
        condition.acquire()
        while (dict.get("array").length == 0) {
            condition.wait()
        }
        var arr = dict.get("array")
        var count = arr.shift()
        dict.set("array", arr)
        Log("consumer:", count, ", array:", arr)
        condition.release()
        Sleep(1000)
    }
}

function producer(productionQuantity, dict, condition) {
    for (var i = 0; i < productionQuantity; i++) {
        condition.acquire()
        var arr = dict.get("array")
        arr.push(i)
        dict.set("array", arr)
        Log("producer:", i, ", array:", arr)
        condition.notify()
        condition.release()
        Sleep(1000)
    }
}

function main() {
    var dict = threading.Dict()
    dict.set("array", [])
    var condition = threading.Condition()
    var productionQuantity = 10
    var producerThread = threading.Thread(producer, productionQuantity, dict, condition)
    var consumerThread = threading.Thread(consumer, productionQuantity, dict, condition)
    consumerThread.join()
    producerThread.join()
}

দুটি সমান্তরাল থ্রেড একটি সাধারণ রিসোর্স অ্যাক্সেস করে।

ব্যাকটেস্টিং সিস্টেম এই কার্যকারিতা বাস্তবায়ন করে না, এটি শুধুমাত্র এটি সংজ্ঞায়িত করে।

{@fun/Threads/getThread getThread}, {@fun/Threads/threading/mainThread mainThread}, {@fun/Threads/threading/currentThread currentThread}, {@fun/Threads/threading/Lock Lock}, {@fun/Threads/threading/Thread Thread}, {@fun/Threads/threads/threading/event Event}, {@fun/Threads/threads/threading/Dict Dict}, {@fun/Threads/threading/pending pending}, {@fun/Threads/threading/threading/eventLoop}, {@fun/Threads/threads/threading/eventLoop},

লক ঘটনা