Java和Python中的线程

6 python java multithreading

关于Python和Java中的线程我几乎没有问题......

  1. 是否可以为Python线程提供优先级,就像在Java中一样?
  2. 如何在Python中杀死,停止,暂停和中断线程?
  3. 线程组 - 他们真的是为了什么?Python也支持它们吗?
  4. 同步 - 在Java中,我们使用简单的关键字synchorinized作为方法,对象...... Python怎么样?

TNX!

Ale*_*lli 12

假设我们正在讨论经典(CPython)实现:

  1. 不,Python的线程没有优先级
  2. 你不能对Python中的一个线程做任何这些事情
  3. Python中没有线程组
  4. 您可以使用许多方法,例如锁,但推荐的方法通常是使用标准库中的Queue模块(并将线程的交互限制为Queue允许您编程的内容)

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

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