草庐IT

thread_safe

全部标签

python - 异步 : Wait for event from other thread

我正在用Python设计一个应用程序,它应该访问一台机器来执行一些(冗长的)任务。asyncio模块似乎是所有与网络相关的东西的不错选择,但现在我需要访问一个特定组件的串行端口。我已经为实际的串行端口实现了某种抽象层,但无法弄清楚如何将其与asyncio合理地集成。以下设置:我有一个运行循环的线程,它定期与机器对话并解码响应。使用enqueue_query()方法,我可以将查询字符串放入队列中,然后由另一个线程将其发送到机器并引起响应。通过传入threading.Event(或任何带有set()方法的内容),调用者可以执行阻塞等待响应。这看起来像这样:f=threading.Event

android - Espresso : Thread. sleep ()

Espresso声称不需要Thread.sleep()但我的代码除非包含它,否则它不起作用。我正在连接一个IP,连接时会显示一个进度对话框。我需要一个Thread.sleep()调用来等待对话框关闭。这是我使用它的测试代码:IP.enterIP();//fillsoutanIPdialog(thisisdonewithespresso)//progressdialogisnowshownThread.sleep(1500);onView(withId(R.id.button).perform(click());我在没有Thread.sleep()调用的情况下尝试了这段代码,但它说R.i

android - Espresso : Thread. sleep ()

Espresso声称不需要Thread.sleep()但我的代码除非包含它,否则它不起作用。我正在连接一个IP,连接时会显示一个进度对话框。我需要一个Thread.sleep()调用来等待对话框关闭。这是我使用它的测试代码:IP.enterIP();//fillsoutanIPdialog(thisisdonewithespresso)//progressdialogisnowshownThread.sleep(1500);onView(withId(R.id.button).perform(click());我在没有Thread.sleep()调用的情况下尝试了这段代码,但它说R.i

python - 在 Python 中有类似于 Java 的 Thread.yield() 的东西吗?这有意义吗?

我想告诉我的Python线程让步,从而避免不必要地占用CPU。在Java中,您可以使用Thread.yield()函数来实现。我认为Python中没有类似的东西,所以我一直在使用time.sleep(t),其中t=0.00001。对于t=0似乎没有效果。我认为也许我对Python的线程模型有一些不正确的理解,因此缺少thread.yield()的原因。有人可以向我澄清这一点吗?谢谢!PS:Java的Thread.yield()的文档是这样说的:Causesthecurrentlyexecutingthreadobjecttotemporarilypauseandallowotherth

python : Running function in thread does not modify current_thread()

我目前正在尝试弄清楚线程在Python中是如何工作的。我有以下代码:deffunc1(arg1,arg2):printcurrent_thread()....classclass1:def__init__():....deffunc_call():printcurrent_thread()t1=threading.Thread(func1(arg1,arg2))t1.start()t1.join()我注意到两个打印输出相同的内容。为什么线程没有变化? 最佳答案 您正在执行函数而不是传递它。试试这个:t1=threading.Thre

python - zip_safe = False 在 setup.py 文件中不起作用

我想将我的项目安装为文件夹而不是.egg文件。所以我在setup.py文件的设置函数中使用了zip_safe=False但是当我运行它时,我的项目被安装为.egg文件,而不是/Library/Python/2.7/site-packages中的目录。下面是我的setup.py文件fromsetuptoolsimportsetup,find_packagessetup(name="my-project",version="0.1",description="Pythonversionofmy-project",author="PriyalJain",author_email="jpriy

Python3 无法使用多处理对列表中的 _thread.RLock 对象进行腌制

我正在尝试解析包含汽车属性(154种属性)的网站。我有一个巨大的列表(名称是liste_test),其中包含280.000个二手车公告URL。defaraba_cekici(liste_test,headers,engine):forlinkinliste_test:try:page=requests.get(link,headers=headers)..........当我这样开始我的代码时:araba_cekici(liste_test,headers,engine)它有效并取得了成果。但是大约1个小时,我只能获取1500个URL的属性。它非常慢,我必须使用多处理。我在here上找

python - 多处理/psycopg2 TypeError : can't pickle _thread. RLock 对象

我按照以下代码在postgres数据库上实现并行选择查询:https://tech.geoblink.com/2017/07/06/parallelizing-queries-in-postgresql-with-python/我的基本问题是我有大约6k个查询需要执行,我正在尝试优化这些选择查询的执行。最初它是一个包含所有6k谓词ID的whereidin(...)查询,但我遇到了问题,查询在它运行的机器上耗尽了>4GB的RAM,所以我决定将其拆分为6k个单独的查询,这些查询在同步时保持稳定的内存使用。然而,明智地运行时间需要更长的时间,这对我的用例来说不是问题。尽管如此,我还是尽量减少

python - 使用 threading.Lock 作为上下文管理器

在threading的文档中它说的模块:Alloftheobjectsprovidedbythismodulethathaveacquire()andrelease()methodscanbeusedascontextmanagersforawithstatement.Theacquire()methodwillbecalledwhentheblockisentered,andrelease()willbecalledwhentheblockisexited.请问是阻塞调用还是非阻塞调用? 最佳答案 从查看CPythonsource

python - threading.local() 是在 Google AppEngine 中为单个请求存储变量的安全方法吗?

我有一个googleappengine应用程序,我只想为该请求设置一个全局变量。我可以这样做吗?在request_vars.py中#request_vars.pyglobal_vars=threading.local()在另一个.py中#another.pyfromrequest_varsimportglobal_varsget_time():returnglobal_vars.time_start在main.py中#main.pyimportanotherfromrequest_varsimportglobal_varsglobal_vars.time_start=datetime.