虽然有很多解决方案与我的问题部分匹配,但我想知道是否存在完全匹配。很难找到一个完整的解决方案,因为这些部分占据了搜索结果。这应该是一个运行时框架,并且(可选)是当语言不支持协同服务时,源代码所需的转换。
有一些库,比如具有lthread_cond_wait() API的线程,但是每个线程都被单个p线程所限制。我希望轻量级线程能够在多个线程中运行。它们应该由线程池任意选择。无论是单线程调度程序还是全局锁调度程序都不匹配。我想我们可以做得更好。
线程也不是一个选项,因为它既不涉及源代码转换,也不像原始线程那样避免源代码转换。
几个绿色线程运行时(Erlang,Limbo)不匹配,因为它们仅限于CSP (通信顺序进程)模型,但我也希望具有共享内存模型同步原语:互斥、条件变量、rwlock。
转型涉及:
由于发布-订阅机制中潜在的死锁,而没有使用全局锁或单个调度程序线程,我未能执行简单的运行时实现,但我仍然认为这是可能的。
发布于 2013-03-28 23:54:06
免责声明:线程作者。
您可以启动多个线程,并在每个线程中运行一个l线程调度程序(这是通过在p线程函数中调用lthread_run()自动完成的)。这样,每个线程都将运行一组l线程。
https://stackoverflow.com/questions/15271278
复制相似问题