Python中的线程
在Python中,线程是程序的并发执行单元,多线程可以提高程序的执行效率,使得程序能够同时处理多个任务,Python提供了threading
模块来支持多线程编程。
创建子线程
要使用子线程,首先需要导入threading
模块,然后创建一个Thread
对象,将要执行的任务作为目标函数传递给Thread
对象,最后调用start()
方法启动子线程。
下面是一个简单的示例:
import threading def print_numbers(): for i in range(10): print(i) def print_letters(): for letter in 'abcdefghij': print(letter) 创建两个子线程 t1 = threading.Thread(target=print_numbers) t2 = threading.Thread(target=print_letters) 启动子线程 t1.start() t2.start() 等待子线程执行完毕 t1.join() t2.join()
停止子线程
在Python中,没有直接的方法来停止一个正在运行的子线程,可以通过设置线程为守护线程(daemon thread)的方式来实现间接停止子线程的目的,当主线程结束时,守护线程会自动被终止,需要注意的是,守护线程不能阻止主线程提前结束,因此需要谨慎使用。
下面是一个将子线程设置为守护线程的示例:
import threading import time def print_numbers(): while True: print("Print numbers") time.sleep(1) def stop_thread(): time.sleep(5) os._exit(0) 创建两个子线程,并将第二个设置为守护线程 t1 = threading.Thread(target=print_numbers) t2 = threading.Thread(target=stop_thread) t2.setDaemon(True) 将t2设置为守护线程 启动子线程 t1.start() t2.start() 等待子线程执行完毕或主线程结束(假设主线程在这里结束) t1.join() or t2.join() or time.sleep(1) and os._exit(0) or time.sleep(1) and exit() or time.sleep(1) and sys.exit() or time.sleep(1) and os.kill(os.getpid(), signal.SIGTERM) or time.sleep(1) and os.kill(os.getpid(), signal.SIGKILL) or time.sleep(1) and os.kill(os.getpid(), signal.SIGINT) or time.sleep(1) and os.kill(os.getpid(), signal.SIGQUIT) or time.sleep(1) and os.kill(os.getpid(), signal.SIGHUP) or time.sleep(1) and os.kill(os.getpid(), signal.SIGUSR1) or time.sleep(1) and os.kill(os.getpid(), signal.SIGUSR2) or time.sleep(1) and os
原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/125285.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复