OThread()
função é usada para criar tópicos simultâneos.
OThread()
função retorna aThread
objeto, que é utilizado para gerir threads criados em simultâneo, comunicação de threads, etc.
Thread
Objeto
Thread ((func,...args) Apresentação (s)
O parâmetrofunc
é uma função para execução simultânea (passada por referência), e suporta a passagem de funções anônimas.func
pode aceitar múltiplos parâmetros, que serão transmitidos através de...args
Portanto, a lista de parâmetros defunc
deve ser coerente com...args
.
Função
verdade
função
O parâmetroarg
é o parâmetro real passado parafunc
(ou seja, a função de execução de thread simultânea) quando a chamada de retorno é executada; pode haver vários parâmetrosarg
, e a lista de parâmetros defunc
deve ser coerente com...args
.
arg
Falso
cadeia, número, bool, objeto, matriz, função, valor nulo e outros tipos suportados pelo sistema
O parâmetroitem
é uma matriz contendo as referências de função e seus parâmetros a serem executados simultaneamente.item
Os parâmetros podem ser transmitidos ao chamar oThread
function.
item verdade matriz
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()
}
Crie tópicos simultâneos para uma função personalizada e uma função 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()
}
Utilize oThread(...items)
forma para criar threads simultâneos e executar múltiplas funções sequencialmente.
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()
}
Suporta a passagem de parâmetros para funções executadas simultaneamente.
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)
}
Ele suporta a passagem de cadeias de funções e pode importar bibliotecas externas dinamicamente para computação simultânea.
A função do fiofunc
passaram para oThread()
A função para execução simultânea é executada em um ambiente isolado, de modo que as variáveis fora do thread não podem ser diretamente referenciadas, e a compilação falhará quando referenciada. Ao mesmo tempo, as referências a outras funções de fechamento não são suportadas dentro do thread. Todas as APIs fornecidas pela plataforma podem ser chamadas dentro do thread, mas outras funções definidas pelo usuário não podem ser chamadas.
Ele suporta sistema de backtesting e ambiente de negociação ao vivo. Todas as funções relacionadas ao thread simultâneo são apenas suportadas como compatibilidade de código no sistema de backtesting e não serão executadas por threads simultâneos, por isso não serão repetidas neste 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}
Configurações da rede getThread