이Thread()
함수는 동시 스레드를 생성하는 데 사용됩니다.
이Thread()
함수는 a를 반환합니다Thread
생성된 동시 스레드, 스레드 통신 등을 관리하는 데 사용되는 객체
Thread
물체
Thread ((func,...args) 스레드 (... 항목)
매개 변수func
동시에 실행되는 함수입니다 (리퍼런스에 의해 전달됩니다) 그리고 익명의 함수를 전달하는 것을 지원합니다.func
여러 매개 변수를 받아들일 수 있습니다....args
동시 실행 중입니다. 따라서,func
이 모든 것이...args
.
함수
사실
기능
매개 변수arg
실제 매개 변수가func
(즉 동시 스레드 실행 함수) 콜백이 실행될 때, 여러 매개 변수가 있을 수 있습니다.arg
, 그리고 매개 변수 목록func
이 모든 것이...args
.
아그
거짓
문자열, 숫자, bool, 객체, 배열, 함수, null 값 및 시스템에서 지원되는 다른 유형
매개 변수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/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}
네트워크 설정 getThread