資源の読み込みに... 荷物...

スレッド

についてThread()この関数は同時スレッドを作成するために使用されます.

についてThread()a を返しますThread作成された同時スレッド,スレッド通信などを管理するために使用されるオブジェクト.

Threadオブジェクト

スレッド (笑) スレッド (→...項目)

パラメータfunc同期実行のための関数 (参照で渡す) で,匿名関数の渡しをサポートします.func複数のパラメータを受け入れることができます....argsパラメータリストはfunc必要なのは...args.

機能 本当 機能 パラメーターarg実行パラメータがfunc(つまり,同時スレッド実行機能) コールバックが実行されるとき,複数のパラメータがある可能性があります.arg, パラメータリストfunc必要なのは...args.

アルグ 偽り 文字列,数,ボール,オブジェクト,配列,関数,ゼロ値,システムでサポートされる他のタイプ パラメーター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()同期実行のための関数は孤立した環境で実行されるので,スレッドの外の変数は直接参照できないし,参照されたときにコンパイルが失敗する.同時に,スレッド内で他の閉じる関数への参照はサポートされません.プラットフォームが提供するすべての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/threads/threading/Dict Dict}, {@fun/Threads/threading/pending pending}, {@fun/Threads/threads/threading/eventLoop}

ネットワーク設定 getThread を取得する