首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java和Python中的线程

Java和Python中的线程
EN

Stack Overflow用户
提问于 2009-06-09 15:49:05
回答 6查看 2.6K关注 0票数 6

关于Python和Java中的线程,我很少有疑问.

  1. 是否有可能给Python线程赋予优先级,就像它在Java中一样?
  2. --我如何才能杀死、停止、挂起和中断Python?
  3. 线程组中的线程--它们到底是为了什么?too?
  4. Synchronization支持它们吗?在Java中,我们为一个方法使用简单的关键字同步化,关于Python的object...What?

Tnx!

EN

回答 6

Stack Overflow用户

发布于 2009-06-09 15:55:02

假设我们讨论的是经典(CPython)实现:

  1. 不,
  2. 中没有优先级--您不能对Python
  3. 中的线程执行任何这些操作--在Python
  4. 中没有线程组--您可以使用许多方法,例如锁,但推荐的方法通常是使用标准库中的队列模块(并将线程的交互限制在允许您编程的队列中)

换句话说,Python线程实际上比Java少得多--更不用说每个进程只有一个线程可以运行Python代码(其他线程可能正在运行C代码或等待)。

对于任何花哨的东西,比如除了Python有限的线程功能之外,建议您使用标准库中的multiprocessing模块--或者切换到Python的实现,这些实现允许您使用更丰富的线程处理方法,例如用于JVM的Jython或用于.NET的IronPython。

票数 12
EN

Stack Overflow用户

发布于 2009-06-09 16:27:29

不能指望常规的java线程优先级。当高优先级线程准备就绪并等待时,您可能会发现一个优先级较低的线程正在运行。

有一种叫做“实时java”(请参见http://www.rtsj.org)的东西,它确实强制执行线程优先级,至少对于RealtimeThread类是这样。常规的java.lang.Thread可能仍然没有强制执行真正的优先级排序。

票数 1
EN

Stack Overflow用户

发布于 2009-06-10 18:42:17

我觉得有必要揭穿这里流传的共同神话:

是否有可能像在Java中一样,将优先级赋予Python线程?

不是从操作系统的角度来说。但是您可以使用协作多任务处理和您自己的自定义调度程序来确保某些线程使用更多的时间。您还可以使用以下内容设置线程之间的时间:

http://docs.python.org/library/sys.html#sys.setcheckinterval

如何在Python中杀死、停止、挂起和中断线程?

请注意,您的可以通过来实现它。这是很困难的,人们会对它的邪恶表现出哲学观。但这在任何语言中都是正确的。您可以使用以下API函数:

http://docs.python.org/c-api/init.html#PyThreadState_SetAsyncExc

或者,您可以像TerminateThread一样在远离TID的窗口中使用底层操作系统。一定要获得全局锁。

线程组-它们真正的用途是什么?Python也支持它们吗?

我想不行。它们是用来控制线程组的。

同步-在Java中,我们使用简单的关键字同步作为一种方法,object...What关于Python?

读取线程和线程模块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/970909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档