多线程

多线程例子, 注释部份即为多线程的使用

#-*- coding: utf-8 -*-
# Wind clear raise
# 2017/3/5 下午2:34 import socket
import threading
import time
import queue, json
import hashlib def list(conn):
conn.send(b"list")
recv_data_size = conn.recv(1024)
conn.send(b"OK")
recv_data_size = int(recv_data_size.decode())
recv_size = 0
res = b''
while recv_size < recv_data_size:
data = conn.recv(1024)
res += data
recv_size += len(data) print(res.decode()) def run(username, password, i):
client = socket.socket()
client.connect(('localhost', 9999))
sha = hashlib.sha256()
sha.update(password.encode())
data = {"account_id": username, "password": sha.hexdigest()}
# 服务器只返回一次
client.send(json.dumps(data).encode())
res = client.recv(1024)
if res != b'Fail':
print("登录成功. 服务器返回:", res.decode(), threading.current_thread(), i)
# list(client) else:
print("密码错误")
client.close() def run2(name, paswd, i):
print(i, threading.current_thread()) if __name__ == "__main__":
# start_time = time.time()
# d = ["alex", 'alex2', "user01"]
# obj_t = []
# for i in range(1000):
# # for name in d:
# # run(name, "123")
# t = threading.Thread(target=run, args=("alex", "123", i))
# # obj_t.append(t)
# t.start()
#
# # for t in obj_t:
# # t.start()
# # for t in obj_t:
# # t.join()
#
# print("end: ", time.time() - start_time)
client = socket.socket()
client.connect(('localhost', 9999))
client.send(b'hello')
print(client.recv(1024))

线程之间通信:queue

import queue

# q = queue.Queue() # 先进先出
q = queue.LifoQueue() # 后进先出 q.put(1)
q.put(2)
q.put(3)
q.put(4)
print(q.get())
print(q.get())
print(q.get())
print(q.get()) q = queue.PriorityQueue()
q.put((-1, ""))
q.put((10, ""))
q.put((5, "")) print(q.get())
print(q.get())
print(q.get())
print(q.get())

Python 第四阶段 学习记录之----多线程的更多相关文章

  1. python 第四阶段 学习记录之----异步

    异步: 知识情况: 1.多线程, 多线程使用场景 1.IO操作不占CPU,读写数据(网络中.系统中) 2.计算占CPU, 3.上下文切换不占CPU.它消耗资源 python多线程 不适合CPU密集型的 ...

  2. Python 第五阶段 学习记录之---Django 基础

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  3. Python 第八阶段 学习记录之---算法

    算法(Algorithm): 一个计算过程, 解决问题的方法 1.递归的两个特点 - 调用自身 - 结束条件 时间复杂度 - 时间复杂度是用来估计算法运行时间的一个式子(单位) - 一般来说,时间复杂 ...

  4. Python 第五阶段 学习记录之---Django 进阶

    Model 一.创建表 1.基本结构 字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - bi ...

  5. Python 第五阶段 学习记录之--- Web框架

    什么是web服务器的原理是什么 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env pyt ...

  6. Python 第五阶段 学习记录之----ORM

    ORM: orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了 ...

  7. Python 第五阶段 学习记录之----rabbmit

    消息服务器rabbmit RabbitMQ 消息队列 python里有两个Q, threading queue.不同线程间数据交互 进程Queue: 不同进程间交互这个说法是错误的. 这个是用于父进程 ...

  8. 《码出高效:Java开发手册》第四章学习记录,内容想当的多,前后花了几天的时间才整理好。

    <码出高效:Java开发手册>第四章学习记录,内容想当的多,前后花了几天的时间才整理好. https://naotu.baidu.com/file/e667435a4638cbaa15eb ...

  9. python核心编程学习记录之多线程编程

随机推荐

  1. vue脚手架用axios请求本地数据

    首先需要声明的是:本地请求,不用考虑跨域问题,这适用刚入坑的前端小白看,小白在做自己的项目时,通常都是用自己写的json数据,之后用axios请求过来,渲染到页面上. 1.cnpm install a ...

  2. 洛谷P3041 视频游戏的连击Video Game Combos [USACO12JAN] AC自动机+dp

    正解:AC自动机+dp 解题报告: 传送门! 算是个比较套路的AC自动机+dp趴,,, 显然就普普通通地设状态,普普通通地转移,大概就f[i][j]:长度为i匹配到j 唯一注意的是,要加上所有子串的贡 ...

  3. postgresSQL主从流复制安装

    命令行运维: https://blog.csdn.net/zhangzeyuaaa/article/details/77941039 安装流程: 先准备类库: yum -y install readl ...

  4. TensorFlow安装之后导入报错:libcudnn.so.6:cannot open sharedobject file: No such file or directory

    转载自:http://blog.csdn.net/silent56_th/article/details/77587792 系统环境:Ubuntu16.04 + GTX1060 目的:配置一下pyth ...

  5. 【雅思】【写作】【大作文】Discuss both views and give your own opinion

    •Discuss both views and give your own opinion •    • •Agree or disagree •Discuss both views •Report ...

  6. 报错解决——Failed to load resource: the server responded with a status of 404 (Not Found) favicon.ico文件找不到

    Django项目开发完成后在本地运行没问题,但在推到服务器上后出现报错Failed to load resource: the server responded with a status of 40 ...

  7. Fast-R-CNN

    基于R-CNN和SPP-Net思想,RBG提出了Fast-R-CNN算法.如果选用VGG16网络进行特征提取,在训练阶段,Fast-R-CNN的速度相比RCNN和SPP-Net可以分别提升9倍和3倍: ...

  8. Ubuntu中Redis的安装与使用

    安装 安装Redis服务器端 apt-get install redis-server 安装完成后,Redis服务器会自动启动,我们检查Redis服务器程序. 检查Redis服务器系统进程 ps -a ...

  9. react 首屏加载优化

    react 首屏加载优化,原本是在入口HTML文件中加载loading动画,但是部署在测试环境上的时候一直无法显示loading的部分,也是奇怪了,我们测试环境的部署一直跟本地的都不太一样,内外网的转 ...

  10. ORM表操作

    1.在python脚本中调用django环境 在根文件夹下,创建test.py文件 import os if __name__ == '__main__': os.environ.setdefault ...