我正在编写一个生成多个子进程的工具。事实上,3级子进程可以加速整个逻辑/进程。
为了在终端中显示输出,我选择了Curses::UI。curses ui对象/小部件是在父/子关系的每个级别创建的,并在子流程的最后一个级别进行操作。这种多级子进程似乎导致了curses显示的问题。
我认为如果我在所有子进程/父进程之间只共享一个curses ui对象,那么它会很稳定。
为了实现这种共享,我尝试使用Storable/Shareable模块,但由于以下错误而无法运行:
quicode sub {││退出;││}导致错误:由(eval 99)行2处的操作掩码捕获的'exit‘,在my_curser.pl第147行,│代码子{──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘退出;}导致错误:'exit‘被操作掩码捕获(eval 99)行2,在my_curser.pl行147│ode sub {││退出;
是否可以在多个进程之间共享curses ui对象?
发布于 2012-04-24 14:34:49
curses
依赖于C和终端或终端仿真器状态,即使从C也不能在进程之间可靠地共享,并且对于UI::Curses
等Perl包装器不可见。(一个终端只有一个“当前位置”的/cursor位置;考虑一下如果不同的子进程试图同时更新显示器不同部分中的小部件会发生什么。)因此,您无法在子进程之间共享这些小部件。
通常,更好的设计是将线程或进程专用于UI,并将处理的其他方面分配给其他线程/进程。
https://stackoverflow.com/questions/10292795
复制相似问题