ElThread()
La función se utiliza para crear hilos concurrentes.
ElThread()
La función devuelve aThread
objeto, que se utiliza para gestionar los hilos creados simultáneamente, la comunicación de hilos, etc.
Thread
objetos
El hilo ((func,...args) Enlace (... elementos)
El parámetrofunc
es una función para ejecución simultánea (pasada por referencia), y admite el paso de funciones anónimas.func
puede aceptar múltiples parámetros, que se transmitirán a través de...args
Por lo tanto, la lista de parámetros defunc
debe ser coherente con...args
.
Función
verdadero
Función
El parámetroarg
es 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 defunc
debe 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ámetroitem
es una matriz que contiene las referencias de las funciones y sus parámetros a ejecutar simultáneamente.item
Los 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 hilofunc
Pasado 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