BZ易风

导航

 
上一页 1 ··· 8 9 10 11 12 13 14 下一页

2019年8月28日

摘要: epoll是事件通知方式接收数据,效率比轮询要高 代码: 阅读全文
posted @ 2019-08-28 11:03 BZ易风 阅读(458) 评论(0) 推荐(0) 编辑
 

2019年8月27日

摘要: 轮询的方法接收数据,效率低,套接字越多,需要的时间越长 代码: 阅读全文
posted @ 2019-08-27 17:08 BZ易风 阅读(171) 评论(0) 推荐(0) 编辑
 
摘要: 原理: 阅读全文
posted @ 2019-08-27 15:42 BZ易风 阅读(200) 评论(0) 推荐(0) 编辑
 

2019年8月26日

摘要: 代码: 阅读全文
posted @ 2019-08-26 13:32 BZ易风 阅读(336) 评论(0) 推荐(0) 编辑
 

2019年8月23日

摘要: 代码: 结果: 阅读全文
posted @ 2019-08-23 18:26 BZ易风 阅读(286) 评论(0) 推荐(0) 编辑
 

2019年8月22日

摘要: 代码: 阅读全文
posted @ 2019-08-22 17:49 BZ易风 阅读(249) 评论(0) 推荐(0) 编辑
 
摘要: 代码: 结果: 这种比较麻烦,如果源代码里面用到time.sleep()或者socket中的堵塞,一个一个改会很麻烦,所以有了gevent的补丁 代码: 结果不变: 阅读全文
posted @ 2019-08-22 17:12 BZ易风 阅读(201) 评论(0) 推荐(0) 编辑
 
摘要: 同yield一样 ,单线程,来回切换完成多任务,需要安装greenlet插件 pip install greenlet 代码: 结果: 阅读全文
posted @ 2019-08-22 16:40 BZ易风 阅读(165) 评论(0) 推荐(0) 编辑
 
摘要: 协程是并发,单线程,一次执行一个 来回切换 代码: 结果: 阅读全文
posted @ 2019-08-22 16:27 BZ易风 阅读(326) 评论(0) 推荐(0) 编辑
 
摘要: 调试 结果: send传的值不影响next()下次要取得值 阅读全文
posted @ 2019-08-22 15:26 BZ易风 阅读(218) 评论(0) 推荐(0) 编辑
 
摘要: 调试 结果: 阅读全文
posted @ 2019-08-22 10:57 BZ易风 阅读(181) 评论(0) 推荐(0) 编辑
 
摘要: 生成器能让看上去的一个函数暂停执行,通过next()或send()继续执行 1,如同列表生成方式,把[]换成() 结果: 2.函数 + yield 阅读全文
posted @ 2019-08-22 10:29 BZ易风 阅读(411) 评论(0) 推荐(1) 编辑
 
摘要: 1. nums = list() 2. nums = [x for x in range(10)] # [0,1,2,3,4,5,6,7,8,9] nums_2 = [x*2 for x in rang(10)] # [0,2,4,6,8,10,12,14,16,18] 阅读全文
posted @ 2019-08-22 10:17 BZ易风 阅读(760) 评论(0) 推荐(0) 编辑
 
摘要: 1,for循环 除了for循环能接受可迭代对象,list、tuple等也能接收 2.class 3.我能理解的class迭代器方式 阅读全文
posted @ 2019-08-22 10:00 BZ易风 阅读(279) 评论(0) 推荐(0) 编辑
 
摘要: 迭代器能减少内存空间实现循环。 方法1: 两个类可以改善成一个,只要有__iter__方法和__next__方法: 阅读全文
posted @ 2019-08-22 09:25 BZ易风 阅读(138) 评论(0) 推荐(0) 编辑
 

2019年8月21日

摘要: 1 import os 2 import multiprocessing 3 4 5 def copy_file(q,file_name,new_folder_name,old_folder_name): 6 with open(old_folder_name + "/" + file_name,"rb") as f1, open(new_folder_name + "/" + file_name 阅读全文
posted @ 2019-08-21 16:37 BZ易风 阅读(237) 评论(0) 推荐(0) 编辑
 
摘要: 1 import multiprocessing 2 3 4 def download_from_web(q): 5 """下载数据""" 6 # 模拟下载数据 7 data = [11,22,33,44] 8 9 # 向队列写入数据 10 for temp in data: 11 q.put(temp) 12 1... 阅读全文
posted @ 2019-08-21 16:03 BZ易风 阅读(173) 评论(0) 推荐(0) 编辑
 
摘要: 阅读全文
posted @ 2019-08-21 14:59 BZ易风 阅读(191) 评论(0) 推荐(0) 编辑
 

2019年8月20日

摘要: 1 import socket 2 import threading 3 4 5 def send_msg(udp_socket,dest_ip,dest_port): 6 while True: 7 send_data = input("请输入要发送的内容:") 8 udp_socket.sendto(send_data.encode... 阅读全文
posted @ 2019-08-20 16:33 BZ易风 阅读(198) 评论(0) 推荐(0) 编辑
 
摘要: 结果: 此时进入到了死锁的状态,都在等对方先解开 避免死锁 程序设计时尽量避免(银行家算法) 添加超时时间 acquire(超时时间) 银行家算法 [背景知识] 一个银行家如何将一定数目的资金安全地借给若干个客户,使这些客户既能借到钱完成要干的事,同时银行家又能收回全部资金而不至于破产,这就是银行家 阅读全文
posted @ 2019-08-20 15:05 BZ易风 阅读(208) 评论(0) 推荐(0) 编辑
 
摘要: 因为多线程运行时要争夺资源,导致同事写入全局变量的时候回出现问题 所以用互斥锁可以解决这个问题 没有上锁的时候 结果: 如果按照预想的,结果应该是:2000000 出现原因--资源争夺 上锁后的情况 结果 test1抢先上锁,运行完毕后会解锁,然后test2接着上锁,得出结果:2000000 阅读全文
posted @ 2019-08-20 14:43 BZ易风 阅读(211) 评论(0) 推荐(0) 编辑
 
摘要: 单核CPU:时间片轮转 并行:CPU的个数大于等于任务数 真的多任务执行 并发:CPU的个数小于任务数 假的多任务 知识点: 多线程共享全局变量 创建线程的两种方法: 1.创建子线程方法 调用函数 Thread(target=函数名) 2,创建子线程类 阅读全文
posted @ 2019-08-20 09:23 BZ易风 阅读(413) 评论(0) 推荐(0) 编辑
 

2019年8月19日

摘要: 服务器端 客户端 阅读全文
posted @ 2019-08-19 16:13 BZ易风 阅读(458) 评论(0) 推荐(0) 编辑
 
摘要: 1 import socket 2 3 4 def main(): 5 # 1.常见套接字对象 6 tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 7 8 # 连接服务器 9 server_ip = input("请输入服务器ip:") 10 ... 阅读全文
posted @ 2019-08-19 11:03 BZ易风 阅读(132) 评论(0) 推荐(0) 编辑
 
摘要: 1 import socket 2 3 4 def main(): 5 # 创建套接字对象 6 tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) 7 8 # 绑定端口 9 tcp_server_socket.bind(("192.168.199.88",... 阅读全文
posted @ 2019-08-19 11:02 BZ易风 阅读(409) 评论(0) 推荐(0) 编辑
 

2019年8月18日

摘要: UDP,User Datagram Protocol):用户数据报协议,UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。RFC 768 [1] 描述了 UDP。 UDP相当于写信,每一封信都要有地址和端口,也不安全,会丢失信息 TCP,Transmission Cont 阅读全文
posted @ 2019-08-18 12:18 BZ易风 阅读(104) 评论(0) 推荐(0) 编辑
 
摘要: 1 # 导入套接字包 2 import socket 3 4 5 def welcome(): 6 print("------欢迎进入UDP聊天器--------") 7 print("1.发送信息") 8 print("2.接收信息") 9 print("0.退出聊天器") 10 11 def send_msg(udp_socket): ... 阅读全文
posted @ 2019-08-18 12:11 BZ易风 阅读(501) 评论(0) 推荐(0) 编辑
 
摘要: A类地址:10.0.0.0~10.255.255.255 B类地址:172.16.0.0~172.31.255.255 C类地址:192.168.0.0~192.168.255.255 阅读全文
posted @ 2019-08-18 10:33 BZ易风 阅读(201) 评论(0) 推荐(0) 编辑
 

2019年8月15日

摘要: 1精灵文件 plane_sprites.py 2.绘制图像主页面 阅读全文
posted @ 2019-08-15 16:04 BZ易风 阅读(3280) 评论(0) 推荐(0) 编辑
 

2019年8月14日

摘要: 在pycharm中导入pygame 1. 如果出现 AttributeError: module 'pip' has no attribute 'main'问题 找到安装目录下 helpers/packaging_tool.py文件,找到如下代码: 修改为如下,保存即可。 阅读全文
posted @ 2019-08-14 15:31 BZ易风 阅读(1185) 评论(0) 推荐(0) 编辑
 

2019年8月13日

摘要: 创建包 自动生成__init__.py文件 在__init__.py文件中把要导入的文件放进去 send_message.py recive_message.py中 需要导入的文件中 包的导入.py 运行结果 发布模块 在包的外部创建setup.py文件 setup.py中输入: 然后在终端中进入到 阅读全文
posted @ 2019-08-13 17:11 BZ易风 阅读(170) 评论(0) 推荐(0) 编辑
 
摘要: 重新导入: 阅读全文
posted @ 2019-08-13 16:47 BZ易风 阅读(158) 评论(0) 推荐(0) 编辑
 
摘要: 1 class Animal: 2 def eat(self): 3 print("吃") 4 5 def drink(self): 6 print("喝") 7 8 def run(self): 9 print("跑") 10 11 def sleep(self): 12 p... 阅读全文
posted @ 2019-08-13 14:43 BZ易风 阅读(161) 评论(0) 推荐(0) 编辑
 
摘要: 1 class Game(object): 2 # 定义最高分 类属性 3 top_score = 0 4 5 # 初始化 6 def __init__(self,name): 7 self.name = name 8 9 10 # 游戏帮助 静态方法 11 @staticmethod 12 def ... 阅读全文
posted @ 2019-08-13 14:41 BZ易风 阅读(118) 评论(0) 推荐(0) 编辑
 
摘要: 1 class Dog(object): 2 def __init__(self,name): 3 self.name = name 4 5 def game(self): 6 print("%s 蹦蹦跳跳的玩耍" % self.name) 7 8 class XiaoTianDog(Dog): 9 def game(... 阅读全文
posted @ 2019-08-13 14:40 BZ易风 阅读(136) 评论(0) 推荐(0) 编辑
 
摘要: 1 class Women(): 2 def __init__(self,name): 3 # 名字 4 self.name = name 5 6 # 年龄 7 self.__age = 18 8 9 def __secret(self): 10 print("%s的年龄是:%d... 阅读全文
posted @ 2019-08-13 14:39 BZ易风 阅读(123) 评论(0) 推荐(0) 编辑
 
摘要: 1 class Gun: 2 """武器""" 3 def __init__(self,model): 4 5 # 枪的类型 6 self.model = model 7 # 弹药 8 self.bullen_counts = 0 9 10 def add_bullen(self,cou... 阅读全文
posted @ 2019-08-13 14:37 BZ易风 阅读(141) 评论(0) 推荐(0) 编辑
 
摘要: 1 class HouseItem(): 2 """家具""" 3 def __init__(self,name,area): 4 self.name = name 5 self.area = area 6 7 def __str__(self): 8 return ("%s的占地面积:%.2f" % (s... 阅读全文
posted @ 2019-08-13 14:36 BZ易风 阅读(161) 评论(0) 推荐(0) 编辑
 
摘要: 单个调用父类的方法: 结果: 父类会被多次调用,浪费大量的资源 MRO和super()用法: 运行结果: super总结: 阅读全文
posted @ 2019-08-13 14:34 BZ易风 阅读(188) 评论(0) 推荐(0) 编辑
 
摘要: 1 class MediaPlayer(object): 2 # 定义类属性记录单例对象引用 3 instance = None 4 5 # 定义对象初始化记录标记 6 init_flag = False 7 8 def __new__(cls, *args, **kwargs): 9 10 # 判断单例对象是否引用... 阅读全文
posted @ 2019-08-13 14:32 BZ易风 阅读(86) 评论(0) 推荐(0) 编辑
 
上一页 1 ··· 8 9 10 11 12 13 14 下一页