这是线程的示例程序。
import threading
from time import sleep
def find_cube(n):
try:
for i in range(1, n + 1):
sleep(1)
print("Cube of {} is : {}".format(i, i * i * i))
except Exception as e:
print(e)
def find_square(n):
try:
for i in range(1, n + 1):
sleep(1)
print("Square of {} is : {}".format(i, i * i))
except Exception as e:
print(e)
n = int(input("Enter a size of iteration variable for cube and square : "))
th1 = threading.Thread(target= find_cube , name= "CubeThread",args=(n,),group=None,)
th2 =threading.Thread(target= find_square , name= "SqThread",args=(n,),group=None)
th1.start()
sleep(1)
th2.start()
th1.join()
th2.join()
在上面的程序中,您可以看到该组具有 None 值,因为像 java 一样,我们现在在 python 中没有 ThreadGroup 类。Thread 有一个构造函数,允许您在 java 中设置 ThreadGroup:
Thread(ThreadGroup group, String name)
我们可以使用这个构造函数来设置我们自己的线程组。而 python 还没有实现 THreadGroup 类。
线程模块的设计松散地基于Java的线程模型。然而,Java 使锁和条件变量成为每个对象的基本行为,它们在 Python 中是独立的对象。Python 的 Thread 类支持 Java 的 Thread 类行为的一个子集;目前,没有优先级,没有线程组,线程不能被销毁、停止、挂起、恢复或中断。Java Thread 类的静态方法在实现时被映射到模块级函数。
threading.Thread(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)
该组应该是无;为实现 ThreadGroup 类时的未来扩展而保留。
参考:Python 文档