博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 第四阶段 学习记录之----多线程
阅读量:5219 次
发布时间:2019-06-14

本文共 1921 字,大约阅读时间需要 6 分钟。

多线程

 

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

#-*- coding: utf-8 -*-# Wind clear raise# 2017/3/5 下午2:34import socketimport threadingimport timeimport queue, jsonimport hashlibdef 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, "1"))q.put((10, "2"))q.put((5, "3"))print(q.get())print(q.get())print(q.get())print(q.get())

 

转载于:https://www.cnblogs.com/otcsnow/p/6502787.html

你可能感兴趣的文章
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>
log4j.properties的作用
查看>>
游戏偶感
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
js += 含义(小知识)
查看>>
B2321 [BeiJing2011集训]星器 数学&&物理
查看>>
201571030319 四则运算
查看>>
RestTemplate 调用本地服务 connection refused
查看>>
.NET方向高级开发人员面试时应该事先考虑的问题
查看>>
台达PLC modbus 不支持04功能码
查看>>
python学习笔记--装饰器
查看>>
发布一个JavaScript工具类库jutil,欢迎使用,欢迎补充,欢迎挑错!
查看>>