کےThread()
تقریب متوازی موضوعات تخلیق کرنے کے لئے استعمال کیا جاتا ہے.
کےThread()
فنکشن a لوٹاتا ہےThread
آبجیکٹ، جو تخلیق کردہ متوازی تھریڈز، تھریڈ مواصلات وغیرہ کا انتظام کرنے کے لئے استعمال ہوتا ہے۔
Thread
چیز
تھریڈ ((فنک،...آرگز) تھریڈ ((... آئٹمز)
پیرامیٹرfunc
ایک ہی وقت میں عملدرآمد کے لئے ایک فنکشن ہے (ریفرنس کے ذریعے منتقل) ، اور گمنام افعال میں منتقل کرنے کی حمایت کرتا ہے.func
متعدد پیرامیٹرز کو قبول کر سکتے ہیں، جس کے ذریعے منتقل کیا جائے گا...args
اسی وقت کے عملدرآمد کے دوران. لہذا، کے پیرامیٹر کی فہرستfunc
کے ساتھ ہم آہنگ ہونا ضروری ہے...args
.
فنکشن
سچ
فنکشن
پیرامیٹرarg
اصل پیرامیٹر ہے جو پاس کیا جاتا ہےfunc
(یعنی متوازی تھریڈ عملدرآمد تقریب) جب کال بیک عملدرآمد کیا جاتا ہے؛ متعدد پیرامیٹرز ہوسکتے ہیںarg
، اور پیرامیٹر کی فہرستfunc
کے ساتھ ہم آہنگ ہونا ضروری ہے...args
.
ارگ
غلط
string، number، bool، object، array، function، null value اور نظام کی حمایت کی دیگر اقسام
پیرامیٹر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 کو تھریڈ کے اندر بلایا جاسکتا ہے ، لیکن دوسرے صارف کے ذریعہ بیان کردہ افعال کو بلایا نہیں جاسکتا ہے۔
یہ بیک ٹسٹنگ سسٹم اور براہ راست تجارتی ماحول کی حمایت کرتا ہے۔ بیک ٹسٹنگ سسٹم میں صرف بیک وقت تھریڈ سے متعلق تمام افعال کوڈ کی مطابقت کے طور پر تعاون یافتہ ہیں اور بیک وقت تھریڈز کے ذریعہ واقعتا execute انجام نہیں دیئے جائیں گے ، لہذا وہ اس باب میں دہرائے نہیں جائیں گے۔
{@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 حاصل کریں