摘要:
使用fork完成并发 【1】 创建套接字,绑定,监听 【2】 等待接受客户端连接请求 【3】创建新的进程处理客户端请求,父进程继续等待连接其他客户端 【4】 客户端退出对应子进程结束 【osfork-server.py】from socket import * import os,sys impor 阅读全文
摘要:
1、进程和线程的区别和联系 【1】两者都是多任务编程的方式,都能够使用计算机的多核 【2】进程的创建删除要比线程消耗更多的计算机资源 【3】进程空间独立,数据安全性好,有专门的进程间通信方法 【4】线程使用全局变量通信,更加简单,但是需要同步互斥操作 【5】一个进程可以包含多个线程,线程共享进程的空 阅读全文
摘要:
线程锁 1、创建线程对象 lock = threading.Lock() 2、上锁 lock.acquire() 3、解锁 lock.release() with lock 上锁 import threading a = b = 0 lock = threading.Lock() def value 阅读全文
摘要:
from threading import Thread from time import sleep a = 1 def foo(): global a a = 1000 def bar(): sleep(1) print("a = ",a) t1 = Thread(target = foo) t 阅读全文
摘要:
事件Event 1、创建线程对象 e = threading.Event() 2、事件阻塞函数 e.wait([timeout]) 3、设置事件 e.set() 4、清除事件 e.clear() import threading from time import sleep #共享资源 s = No 阅读全文
摘要:
【1】创建父子进程分别表示司机和售票员 【2】当售票员捕捉到SIGINT信号时,给司机发送SIGUSER1信号 此时司机打印 "老司机开车了" 【3】当售票员捕捉到SIGQUIT信号时,给司机发送SIGUSER2信号。 此时司机打印 "车速有点快,系好安全带" 【4】当司机捕捉到SIGTSTP信号时 阅读全文