并发编程—守护线程/守护进程

"""
守护线程/守护进程 - 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()

你可能感兴趣的:(并发编程—守护线程/守护进程)