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

থ্রেড

দ্যThread()একই সময়ে থ্রেড তৈরি করতে ফাংশন ব্যবহার করা হয়।

দ্যThread()ফাংশন a প্রদান করেThreadobject, যা তৈরি concurrent threads, thread communication ইত্যাদি পরিচালনা করতে ব্যবহৃত হয়।

Threadবস্তু

থ্রেড ((ফান,... আর্গস) থ্রেড ((... আইটেম)

প্যারামিটারfuncএকটি ফাংশন যা একই সাথে সম্পাদন করা হয় (রেফারেন্স দ্বারা পাস করা হয়), এবং বেনামী ফাংশনগুলিকে পাস করতে সহায়তা করে।funcএকাধিক পরামিতি গ্রহণ করতে পারে, যা মাধ্যমে পাস করা হবে...argsএকই সময়ে কার্যকর করার সময়. অতএব, পরামিতি তালিকাfuncএর সাথে সামঞ্জস্যপূর্ণ হতে হবে...args.

ফাংশন সত্য ফাংশন প্যারামিটারargপ্রকৃত প্যারামিটার যা পাস করা হয়func(যেমন সমান্তরাল থ্রেড এক্সিকিউশন ফাংশন) যখন কলব্যাক এক্সিকিউটেড হয়; একাধিক পরামিতি থাকতে পারেarg, এবং প্যারামিটার তালিকাfuncএর সাথে সামঞ্জস্যপূর্ণ হতে হবে...args.

আরজি মিথ্যা string, number, bool, object, array, function, null value এবং সিস্টেম দ্বারা সমর্থিত অন্যান্য প্রকার প্যারামিটারitemএকটি অ্যারে যা একই সময়ে কার্যকর করা ফাংশন রেফারেন্স এবং তাদের পরামিতি ধারণ করে।itemপ্যারামিটার কল করার সময় পাস করা যেতে পারেThread function.

বিষয় সত্য অ্যারে

function test1(a, b, c) {
    Log("test1:", a, b, c)
}

function main() {
    var t1 = threading.Thread(test1, 1, 2, 3)
    var t2 = threading.Thread(function (msg) {
        Log("msg:", msg)
    }, "Hello thread2")

    t1.join()
    t2.join()
}

একটি কাস্টম ফাংশন এবং একটি বেনামী ফাংশন উভয়ের জন্য সমান্তরাল থ্রেড তৈরি করুন।

function test1(msg) {
    Log("msg:", msg)
    test2("Hello test2")
}

function main() {
    var t1 = threading.Thread(
        [function(a, b, c) {Log(a, b, c)}, 1, 2, 3], 
        [test1, "Hello test1"], 
        [`function test2(msg) {Log("msg:", msg)}`])

    t1.join()
}

ব্যবহার করুনThread(...items)একই সাথে থ্রেড তৈরি করতে এবং একাধিক ফাংশন ক্রমাগত সম্পাদন করতে।

function testFunc1(p) {
    Log("testFunc1 p:", p)
}

function main() {
    threading.Thread(function(pfn) {
        var threadName = threading.currentThread().name()
        var threadId = threading.currentThread().id()
        pfn(`in thread threadName: ${threadName}, threadId: ${threadId}`)
    }, testFunc1).join()
}

এটি সমান্তরালভাবে কার্যকর ফাংশনগুলিতে প্যারামিটারগুলি পাস করতে সহায়তা করে।

function ml(input) {
    const net = new brain.NeuralNetwork()
    net.train([
        { input: [0, 0], output: [0] },
        { input: [0, 1], output: [1] },
        { input: [1, 0], output: [1] },
        { input: [1, 1], output: [0] },
    ])
    return net.run(input)
}

function main() {
    var ret = threading.Thread([ml, [1, 0]], [HttpQuery("https://unpkg.com/brain.js")]).join()

    // ret: {"id":1,"terminated":false,"elapsed":337636000,"ret":{"0":0.9339330196380615}}
    Log(ret)
}

এটি ফাংশন স্ট্রিংগুলি পাস করতে সমর্থন করে এবং সমান্তরাল কম্পিউটিংয়ের জন্য গতিশীলভাবে বাহ্যিক লাইব্রেরি আমদানি করতে পারে।

থ্রেড ফাংশনfuncপ্রবাহিতThread()একই সময়ে কার্যকর করার জন্য একটি ফাংশন একটি বিচ্ছিন্ন পরিবেশে চালিত হয়, তাই থ্রেডের বাইরে ভেরিয়েবলগুলি সরাসরি উল্লেখ করা যায় না, এবং সংকলনটি উল্লেখ করার সময় ব্যর্থ হবে। একই সময়ে, থ্রেডের মধ্যে অন্যান্য ক্লোজার ফাংশনের উল্লেখগুলি সমর্থিত নয়। প্ল্যাটফর্ম দ্বারা সরবরাহিত সমস্ত এপিআই থ্রেডের মধ্যে কল করা যেতে পারে, তবে অন্যান্য ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলি কল করা যায় না।

এটি ব্যাকটেস্টিং সিস্টেম এবং লাইভ ট্রেডিং পরিবেশকে সমর্থন করে। সমস্ত সমান্তরাল থ্রেড সম্পর্কিত ফাংশনগুলি ব্যাকটেস্টিং সিস্টেমে কোড সামঞ্জস্যের জন্য সমর্থিত এবং প্রকৃতপক্ষে সমান্তরাল থ্রেড দ্বারা কার্যকর করা হবে না, তাই এগুলি এই অধ্যায়ে পুনরাবৃত্তি করা হবে না।

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

নেট সেটিং getThread