首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多线程环境中的Qore streams

多线程环境中的Qore streams
EN

Stack Overflow用户
提问于 2018-02-11 19:06:42
回答 1查看 16关注 0票数 2

Qore stream documentation (https://qoretechnologies.com/manual/qorus/latest/qore/lang/html/class_qore_1_1_output_stream.html)指出,除非对象已经创建,否则不能从其他线程调用流实例(我确实看到了硬编码的检查片段if (tid != gettid()) then raise exception。这似乎是一个巨大的限制,因为即使是锁定也无济于事。

当我需要使用来自多个线程的流对象时,应该如何解决?

我可以想象额外的“流”线程和一个队列作为唯一的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2018-02-12 14:12:30

由于性能原因,迭代器和流都被设计为仅限于单线程使用,也因为在完成Qore流的设计和实现时,不能使用内置的流对象来识别使用来自多个线程的流的实际用例。

您可以实现自己的支持多线程使用的流,因为抽象基类InputStreamOutputStream的最小内部C++实现不包含对多线程使用的任何限制。

如果你真的需要内建流中的多线程支持,那么可以扩展Qore,例如,允许在子类中实现适当的锁定。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48730829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档