{site_name}

{site_name}

🌜 搜索

Python信号是指在操作系统层面上发出的通知,用于通知Python进程某种事件已经发生

Python 𝄐 0
python线程信号量,python线程间通信,python处理信号,python中的信号量,python线程原理,python做信号处理
Python信号是指在操作系统层面上发出的通知,用于通知Python进程某种事件已经发生。Python线程则是指在Python程序中创建的并行执行的代码块。

Python信号:
Python程序可以通过signal模块来处理信号。其中,signal.signal()函数用于注册信号处理函数,当接收到相应的信号时,会调用该处理函数。例如:

python
import signal
import time

def handler(signum, frame):
print(f"Received signal {signum}")

signal.signal(signal.SIGINT, handler) # 注册SIGINT信号处理函数

while True:
print("Running...")
time.sleep(1)


在这个例子中,我们定义了一个handler函数作为SIGINT信号的处理函数。然后使用signal.signal()函数将其注册为SIGINT信号的处理函数。当程序运行时,每秒钟会输出一次“Running...”,并且会等待SIGINT信号的发生。如果我们在终端中按下Ctrl+C键,则会发出SIGINT信号,此时程序会输出“Received signal 2”,并退出循环。

Python线程:
在Python中,可以使用threading模块来创建并管理线程。例如:

python
import threading
import time

def worker():
print(f"Thread {threading.current_thread().name} starting")
time.sleep(2)
print(f"Thread {threading.current_thread().name} exiting")

threads = [threading.Thread(target=worker, name=f"Worker-{i}") for i in range(3)]

for thread in threads:
thread.start()

for thread in threads:
thread.join()

print("All threads finished")


在这个例子中,我们定义了一个worker函数作为线程的执行函数。使用threading.Thread()函数可以创建一个新的线程对象,并指定该线程要执行的任务。然后,我们将这些线程对象加入到一个列表中,并依次调用它们的start()方法启动线程。最后,使用join()方法等待所有线程完成,以及输出一条“All threads finished”的消息。运行这个代码,你将看到三个线程依次启动并执行worker函数,然后退出。