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ốfunc
là 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.func
có thể chấp nhận nhiều tham số, mà sẽ được truyền qua...args
Do đó, danh sách tham số củafunc
cần phải phù hợp với...args
.
chức
đúng
chức năng
Các thông sốarg
là 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ủafunc
cầ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ốitem
là 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.item
cá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