【问题标题】:Creating thread in python rewrites another structure在 python 中创建线程重写了另一个结构
【发布时间】:2011-08-25 01:31:13
【问题描述】:


在我的 Python 程序中,我使用自己的 C 库,其中结构非常复杂(我只使用 Python 来创建 GUI)。在创建另一个应该处理 C 模块中正在进行的一些计算的线程后,C 结构中的一个 char * (可能更多,但我还没有找到任何其他)包含以下字符串:'thread.lock' object has没有属性 '_is_owned' 而不是它应该包含的属性。我使用测试方法打印字符串。我的情况是我在线程初始化之前调用它,字符串是可以的,但是如果我之后调用它,它就会改变。

class MyThread (threading.Thread):
    def __init__(self, window):
        library.test_print()
        self.window = window
        threading.Thread.__init__(self)
        library.test_print()

我不认为 Python 中存在错误(或者是否存在?),但我看不出我可能做错了什么。你有什么想法吗?

【问题讨论】:

  • 你的问题表述得很混乱,根本不清楚这里的问题是什么。

标签: python c multithreading wxpython


【解决方案1】:

我想通了。问题是我在将字符串存储到我的结构中的 char* 时没有制作字符​​串的防御副本,尽管我的指针仍然指向它,但 python 用另一个字符串覆盖那个内存空间没有问题。 感谢大家的宝贵时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2012-03-28
    相关资源
    最近更新 更多