gpt4 book ai didi

multithreading - 如何将纤维传递到线程上?

转载 作者:行者123 更新时间:2023-12-03 12:55:09 25 4
gpt4 key购买 nike

我想知道如何将光纤传递给线程?

我设法做到的唯一方法是通过与shared之间进行强制转换。

auto fiber = new Fiber((){
});
auto t = spawn((){
auto fib = cast(Fiber)receiveOnly!(shared(Fiber));
writeln("fib");
fib.call();

});
send(t, cast(shared(Fiber))fiber);

但这似乎并不正确。我想我不太了解 shared的含义。

我不得不将光纤强制转换为共享,因为没有它,我不允许将其发送到线程。我不得不将其转换回光纤,因为我无法在共享光纤上调用 Fiber.call

Fiber传递给线程的正确方法是什么?

最佳答案

目前不支持跨线程移动光纤(可能永远不会)。使用共享可能会以某种方式起作用,但这样做很危险,而且我不确定它是否可以在所有编译器中正常工作。这个dlang论坛主题中有更多信息:

http://forum.dlang.org/post/m2r3prh3ki.fsf@comcast.net

关于multithreading - 如何将纤维传递到线程上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com