"""
守护线程/守护进程 - daemon
mysqld / httpd / firewalld / systemd
如果主线程结束了守护线程也不再保留即使守护线程还在执行(没有结束)
Lock - 多个线程竞争临界资源(资源只有1个) - 获得锁才能操作资源
Condition - 基于Lock对象可以创建它 - wait() / notify_all() -
实现线程调度
Semaphore - 多个线程竞争资源(资源有多个,但线程数量大于资源数量)
多个线程通信比较简单因为可以共享内存
多个进程通信相对比较困难,可以使用multiprocessing.Queue
通过多个进程共享一个队列来实现进程间的通信
生产者消费者模型 / 哲学家进餐模型 - 多线程编程模型
"""
import threading
import time
def show_message(content):
while True:
print(content, end='')
def main():
threading.Thread(
target=show_message, args=('Ping', ), daemon=True
).start()
threading.Thread(
target=show_message, args=('Pong', ), daemon=True
).start()
sleep(5)
if __name__ == '__main__':
main()
网友评论