我有一个Scala / Java OpenGL应用程序,我在其中使用Akka框架.目前,我的OpenGL线程独立于actor系统,因此我可以保证对OpenGL函数的调用始终来自单个线程.这很重要,否则OpenGL会抱怨.
到目前为止,我不得不将OpenGL线程中的消息发送给系统中的actor,这非常有效.我现在面临着以相反的方式发送消息的需要,但当然我不能简单地将OpenGL放在一个actor中,因为这将打破它从单个线程运行的要求.
另一种方法是手动使用队列和锁来进行actor和OpenGL线程之间的通信,但是我想知道是否有办法将OpenGL调用放在一个特殊的Actor中,Akka将给予它一个保证.在单个线程中运行.
问候
解决方法:
您可以使用PinnedDispatcher为每个actor使用单个线程.根据文件:
This dispatcher dedicates a unique thread for each actor using it;
i.e. each actor will have its own thread pool with only one thread in
the pool.
原文地址:https://codeday.me/bug/20190613/1231066.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。