python基础学习8-网络协议、进程与线程

  1. UDP协议 用户数据包协议
  2. socket
    1. bind()
    2. sendall()
    3. recvfrom()
    4. sendto()
    5. close()
  3. TCP服务器端流程:
    1. 使用socket类创建一个套接字对象
    2. 使用bind((ip,port))方法绑定ip地址和端口号
    3. 使用listen()方法开始TCP监听
    4. 使用accept()方法等待客户端的连接
    5. 使用recv()/send()方法接受发送数据
    6. 使用close()关闭套链接
  4. 进程:程序运行后,系统为程序分配的内存空间
    1. Process(group=None,target,name,args,kwargs)
      1. group 表分组,实际不使用,值默认为None即可
    1. target 子进程要执行的任务,支持函数名
    2. name 子进程名称
    3. args 调用函数的位置参数,以元组的形式进行传递
    4. kwargs 表示调用函数的关键字参数,以字典的形式进行传递
    1. class 子进程(Process):
       pass
    1. 方法属性
    1. name 当前进程实例的别名默认为Process-N
    2. pid 当前进程对象的PID值
    3. is_alive 判断进程是否执行完,没执行完为True,执行完为False
    4. join(timeout) 等待结束,或者等待timeout秒
    5. start() 启动进程
    6. run() 如果没有指定的target参数,则启动进程以后,会调用父类中的run方法
    7. terminate() 强制终止进程
  1. 进程池 进程池对象 = Pool(N)
    1. apply_async(func,args,kwargs) 使用非阻塞方式调用函数
    2. apply(func,args,kwargs) 使用阻塞方式调用函数
    3. close() 关闭进程池,不再接受新任务
    4. terminate() 不管任务完成否,立即关闭进程池
    5. join() 阻塞主进程,必须在terninate(和close()之后使用
  2. 进程之间数据不共享,通过队列解决,先进先出
    1. queue.qsize()
    2. queue.empty()
    3. queue.full()
    4. queue.get(blovk=true)
    5. queue.get_nowait()
    6. queue.out(item,block=true)
    7. queue.put_nowait(item)
  3. 函数式创建线程,线程之间可以共享数据
    1. 函数式 t= Thread(group,target,name,args,kwargs)
    2. 继承式
  4. 线程共享数据带来的安全问题-锁
    1. acquire()
    2. release()
posted @ 2024-02-23 17:47  月下云生  阅读(3)  评论(0编辑  收藏  举报