En la carga de los recursos... Cargando...

El hilo

ElThread()La función se utiliza para crear hilos concurrentes.

ElThread()La función devuelve aThreadobjeto, que se utiliza para gestionar los hilos creados simultáneamente, la comunicación de hilos, etc.

Threadobjetos

El hilo ((func,...args) Enlace (... elementos)

El parámetrofunces una función para ejecución simultánea (pasada por referencia), y admite el paso de funciones anónimas.funcpuede aceptar múltiples parámetros, que se transmitirán a través de...argsPor lo tanto, la lista de parámetros defuncdebe ser coherente con...args.

Función verdadero Función El parámetroarges el parámetro real pasado afunc(es decir, la función de ejecución de hilo concurrente) cuando se ejecuta la devolución de llamada; puede haber múltiples parámetrosarg, y la lista de parámetros defuncdebe ser coherente con...args.

el falsos cadena, número, bool, objeto, matriz, función, valor nulo y otros tipos compatibles con el sistema El parámetroitemes una matriz que contiene las referencias de las funciones y sus parámetros a ejecutar simultáneamente.itemLos parámetros se pueden pasar cuando se llama elThread function.

el artículo verdadero el conjunto

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()
}

Crear hilos concurrentes tanto para una función personalizada como para una función anónima.

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()
}

Utilice elThread(...items)forma para crear hilos concurrentes y ejecutar múltiples funciones secuencialmente.

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()
}

Apoya el paso de parámetros a funciones ejecutadas simultáneamente.

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)
}

Soporta el paso de cadenas de funciones y puede importar bibliotecas externas dinámicamente para computación concurrente.

La función del hilofuncPasado en elThread()La función para ejecución simultánea se ejecuta en un entorno aislado, por lo que las variables fuera del hilo no se pueden referenciar directamente, y la compilación fallará cuando se hace referencia. Al mismo tiempo, no se admiten referencias a otras funciones de cierre dentro del hilo. Todas las API proporcionadas por la plataforma se pueden llamar dentro del hilo, pero no se pueden llamar otras funciones definidas por el usuario.

Todas las funciones relacionadas con los hilos concurrentes solo se admiten como compatibilidad de código en el sistema de backtesting y no se ejecutarán realmente por hilos concurrentes, por lo que no se repetirán en este capítulo.

{@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 event}, {@fun/Threads/threading/eventLoop}

Configuración de la red Obtener el hilo