【发布时间】:2013-06-03 13:36:39
【问题描述】:
是否可以控制python中线程的比例执行时间。例如,我的程序中有三个函数 F1、F2 和 F3。我在 python 中使用 start_new_thread 调用每个函数。我希望 F2 线程执行 70% 的时间,而 F1 和 F3 应该共享其余的 30%。有没有办法明确控制这些时间。
【问题讨论】:
-
这里的动机是什么?你为什么要这样做,它需要有多精确?
-
这是一些非常低级的东西,通常由操作系统处理。我怀疑是否有一种方法可以根据需要精确控制它,但可能有一种方法可以以特定优先级启动线程。
-
实际上我正在尝试并行化其他人编写的代码。我想在对原始代码进行最小更改的同时使用此功能 (F2)。问题是,如果我只调用 F2 而不为其创建线程,则执行时间太长。我想为此函数创建线程,同时分配最大调度时间以尽快完成 F2 执行,同时在 F2 调用期间不挂起我的程序。
-
Python 线程是真正的 OS 线程。所有的调度都留给操作系统。实现您想要的唯一方法是重新实现调度。在这种情况下,您应该向函数添加检查,并在经过一定时间后让线程休眠。做一些行之有效的事情并不容易,而且结果可能不是最理想的。请注意,操作系统通常会为交互式程序提供非常高的优先级,因此出于您所说的原因(至少如果您没有实际测试它在没有自定义调度程序的情况下如何运行),则不需要这样做。
标签: python multithreading timing