В процессе загрузки ресурсов... загрузка...

Нить

ВThread()Функция используется для создания одновременных потоков.

ВThread()функция возвращает aThreadобъект, который используется для управления созданными параллельными потоками, коммуникацией потоков и т.д.

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 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()Функция для одновременного выполнения выполняется в изолированной среде, поэтому переменные за пределами потока не могут быть напрямую ссылаются, и компиляция не удастся при ссылке. В то же время ссылки на другие функции закрытия не поддерживаются в потоке. Все API, предоставляемые платформой, могут быть вызваны в потоке, но другие функции, определенные пользователем, не могут быть вызваны.

Все параллельные функции, связанные с потоком, поддерживаются только как совместимость кода в системе параллельного тестирования и не будут фактически выполняться параллельными потоками, поэтому они не будут повторяться в этой главе.

{@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