如何防止故障出现在curses应用程序中?

时间:2017-11-10 17:40:23

标签: python ncurses tmux curses

我正在使用Python中的curses开发应用程序。应用程序启动后几秒钟,随机出现一些故障。 Normal With glitches

首先我认为这是因为tmux和$TERM变量,但它设置为screen-256。在tmux之外运行应用程序也会导致这种故障。

以下是初始化curses screen

的代码

1 个答案:

答案 0 :(得分:2)

示例执行此操作:

import curses
from threading import Thread


class Screen(object):
    def __init__(self):
        self.maxx = None
        self.maxy = None

self.run()

暗示您的应用程序可能有多个线程写入屏幕。但是curses通常不是线程安全的,所以你最终会使用他们的线程 - 以及其他线程 - 全局变量或静态变量的值。它不会很好用。

如果要在多线程应用程序中使用curses,则必须确保只有一个线程使用curses ,或者(可能)编译自己的ncurses副本库,它对可重入代码有基本的支持,并且在 配置的约束下工作。

进一步阅读: