2024-05-29 03:43:14 发布
网友
我用python编写了一个讨厌的cralwer系统,从每个地方政府的网站上抓取一些东西,网站总数超过100个,以防他们的网页发生变化,我不得不使用reload进行热更新。但我想知道重新加载是否线程安全。因为我在线程1中重新加载moudle Cralwer1,但同时,线程2使用Cralwer1。线程1的重新加载会导致线程2失败吗?如果是这样的话,我必须做一个锁什么的,否则,我可以很高兴地重新加载没有额外的工作。有人能帮我吗?在
reload=在crawre1中重新执行顶层代码。在
一般来说,如果没有更多的信息/代码示例,您可以:
封装启动程序的“可操作”顶层代码,例如将其放入函数或类中,并调用它而不是重新加载整个模块。添加/调用此函数可能会涉及到一些清理。
使用一个全局变量,thread1和thread2将翻转并注意该变量,以防止相互踩踏。这并不能很好地扩展,但可能会阻止/延迟锁的使用。
Is Python reload thread safe?
没有
reload()执行模块中所有纯python代码。任何纯python步骤都可以在任何时候进行线程切换。所以,这绝对不安全。在
reload=在crawre1中重新执行顶层代码。在
一般来说,如果没有更多的信息/代码示例,您可以:
封装启动程序的“可操作”顶层代码,例如将其放入函数或类中,并调用它而不是重新加载整个模块。添加/调用此函数可能会涉及到一些清理。
使用一个全局变量,thread1和thread2将翻转并注意该变量,以防止相互踩踏。这并不能很好地扩展,但可能会阻止/延迟锁的使用。
没有
reload()执行模块中所有纯python代码。任何纯python步骤都可以在任何时候进行线程切换。所以,这绝对不安全。在
相关问题 更多 >
编程相关推荐