Tài nguyên đang được tải lên... tải...

Sợi

CácThread()chức năng được sử dụng để tạo các chủ đề đồng thời.

CácThread()hàm trả về aThreadđối tượng, được sử dụng để quản lý các chủ đề đồng thời được tạo, giao tiếp chủ đề, v.v.

Threadđối tượng

Thread ((func,...args) Thread ((... item)

Các thông sốfunclà một hàm để thực thi đồng thời (được truyền qua tham chiếu), và hỗ trợ truyền vào các hàm ẩn danh.funccó thể chấp nhận nhiều tham số, mà sẽ được truyền qua...argsDo đó, danh sách tham số củafunccần phải phù hợp với...args.

chức đúng chức năng Các thông sốarglà tham số thực tế được truyền đếnfunc(tức là chức năng thực thi chuỗi đồng thời) khi callback được thực hiện; có thể có nhiều tham sốarg, và danh sách tham số củafunccần phải phù hợp với...args.

arg sai chuỗi, số, bool, đối tượng, mảng, hàm, giá trị null và các loại khác được hỗ trợ bởi hệ thống Các thông sốitemlà một mảng chứa các tham chiếu hàm và các tham số của chúng để được thực hiện đồng thời.itemcác tham số có thể được truyền vào khi gọiThread function.

mục đúng mảng

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

Tạo các chủ đề đồng thời cho cả hàm tùy chỉnh và hàm ẩn danh.

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

Sử dụngThread(...items)hình thức để tạo các chủ đề đồng thời và thực hiện nhiều chức năng liên tục.

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

Nó hỗ trợ truyền tham số đến các chức năng được thực hiện đồng thời.

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

Nó hỗ trợ truyền các chuỗi hàm và có thể nhập thư viện bên ngoài một cách năng động để tính toán đồng thời.

Chức năng sợifuncđã đi vàoThread()Function for concurrent execution runs in an isolated environment, so variables outside the thread cannot be directly referenced, and compilation will fail when referenced. Đồng thời, các tham chiếu đến các hàm đóng khác không được hỗ trợ trong thread. Tất cả các API được cung cấp bởi nền tảng có thể được gọi trong thread, nhưng các hàm được người dùng xác định khác không thể được gọi.

Nó hỗ trợ hệ thống backtesting và môi trường giao dịch trực tiếp. Tất cả các chức năng liên quan đến luồng đồng thời chỉ được hỗ trợ như khả năng tương thích mã trong hệ thống backtesting và sẽ không thực sự được thực hiện bởi luồng đồng thời, vì vậy chúng sẽ không được lặp lại trong chương này.

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

NetSettings getThread