2018-7-18 22:05:28  笔记都做完了 睡觉睡觉!!!明天早起!发现python慢慢深入变得很强大,很好玩!!!

进程池版本的socket 更加优化了,比多进程版本的效率更高

seerver端

  1. # !/usr/bin/env python
  2. # !--*--coding:utf-8 --*--
  3. # !@Time :2018/7/18 20:50
  4. # !@Author TrueNewBee
  5.  
  6. # 用进程池子方法让服务端接就收多个客户端发来消息
  7. # apply_async() 异步方法
  8. import socket
  9. from multiprocessing import Pool
  10.  
  11. def func(conn1):
  12. conn1.send(b'hello')
  13. print(conn.recv(1024).decode('utf-8'))
  14. conn1.close()
  15.  
  16. if __name__ == '__main__':
  17. p = Pool(5)
  18. sk = socket.socket()
  19. sk.bind(('127.0.0.1', 8080))
  20. sk.listen()
  21. while True:
  22. # 需要异步 多进程就收客户端发来消息
  23. conn, add = sk.accept()
  24. p.apply_async(func, args=(conn, ))
  25. sk.close()

client 端

  1. # !/usr/bin/env python
  2. # !--*--coding:utf-8 --*--
  3. # !@Time :2018/7/18 20:50
  4. # !@Author TrueNewBee
  5. import socket
  6.  
  7. sk = socket.socket()
  8. sk.connect(('127.0.0.1', 8080))
  9. ret = sk.recv(1024).decode('utf-8')
  10. print(ret)
  11. msg = input('>>>').encode('utf-8')
  12. sk.send(msg)
  13. sk.close()

7.18 进程池方式的 socket的更多相关文章

  1. python生产者和消费者模式实现(三)进程池方式

    注意:如果要使用Pool(进程池方式)创建进程,就需要使用multiprocessing.Manager()中的 Queue(),而不是multiprocessing.Queue() import t ...

  2. {Python之进程} 背景知识 什么是进程 进程调度 并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 multiprocess模块 进程池和mutiprocess.Poll

    Python之进程 进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mut ...

  3. Python 多进程和进程池

    一,前言 进程:是程序,资源集合,进程控制块组成,是最小的资源单位 特点:就对Python而言,可以实现真正的并行效果 缺点:进程切换很容易消耗cpu资源,进程之间的通信相对线程来说比较麻烦 线程:是 ...

  4. Python之进程 3 - 进程池和multiprocess.Poll

    一.为什么要有进程池? 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星任务.那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?首先,创建进程需要消耗 ...

  5. Python并发编程-进程池及异步方式

    进程池的基本概念 为什么有进程池的概念 效率问题 每次开启进程,都需要开启属于这个进程的内存空间 寄存器,堆栈 进程过多,操作系统的调度 进程池 python中的 先创建一个属于进程的池子 这个池子指 ...

  6. (并发编程)进程池线程池--提交任务2种方式+(异步回调)、协程--yield关键字 greenlet ,gevent模块

    一:进程池与线程池(同步,异步+回调函数)先造个池子,然后放任务为什么要用“池”:池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务池子内什么时候装进程:并发的任务 ...

  7. 进程池----Pool(老的方式)----回调

    之后的进程池使用的是 ProcessPoolExecutor,它的底层使用的就是pool 为什么要有进程池?进程池的概念. 在程序实际处理问题过程中,忙时会有成千上万的任务需要被执行,闲时可能只有零星 ...

  8. Python—创建进程池的方式

    创建进程池 from multiprocessing import Pool import time,os result = [] # 存放所有worker函数的返回值 def worker(msg) ...

  9. day36——死锁、递归锁、信号量、GIL、多线程实现socket通信、线程池和进程池

    day36 死锁现象与递归锁 死锁现象 是指两个或两个以上的进程或线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这 ...

随机推荐

  1. DPSR随手笔记

    降质模型 MAP:

  2. 安装 运行yum报错:No module named yum

    报错情况: There was a problem importing one of the Python modulesrequired to run yum. The error leading ...

  3. highcharts图表中级入门:非histock图表的highcharts图表如何让图表产生滚动条

    最近highcharts图表讨论群里面很多朋友都在问如何让highcharts图表在X轴数据多的情况下产生滚动条的问题,其实之前有一个解决办法是将装载图表的div容器用css样式表弄一个滚动条出来.这 ...

  4. xcode修改默认头部注释(__MyCompanyName__) (转)

    打开命令行: defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{ "ORGANIZATIONNAME&qu ...

  5. MySQL--指定浮点型数据的精确度TRUNCATE

    INSERT INTO perf_week(node_id,perf_time,pm25,pm10,temp,humi) ) ) ) ) AS humi FROM perf_pm25 WEEK) AN ...

  6. ios开发之--UITableView中的visibleCells的用法

    先上图: 具体代码如下: #import "ViewController.h" @interface ViewController ()<UITableViewDelegat ...

  7. 接口测试之JMeter初探

    1.JMeter安装配置 )登录 http://jmeter.apache.org/download_jmeter.cgi ,下载与自己的平台相对应文件: )安装JDK(.6以上),配置环境变量JAV ...

  8. iptraf:一个实用的TCP/UDP网络监控工具

    iptraf是一个基于ncurses的IP局域网监控器,用来生成包括TCP信息.UDP计数.ICMP和OSPF信息.以太网负载信息.节点状态信息.IP校验和错误等等统计数据. 它基于ncurses的用 ...

  9. MQTT_DEMO

    1 /* 2 Copyright (c) 2009-2012 Roger Light <roger@atchoo.org> 3 All rights reserved. 4 5 Redis ...

  10. 【IOS】iOS 企业版应用网站下载plist文件

    如果想从自己公司的网站上下载安装应用,首先 准备一个 index.html文件 <!DOCTYPE html> <html lang="zh-cn"> &l ...