摘要: 这里我们暂且先不提全局解释器锁,从这个代码例子里我们可以看出,一个锁在上锁以后,如果在没有释放它的情况下再要对它上锁,他就会阻塞住,一直到它的锁被释放了以后才能够再次被上锁,这样就实现了两个线程的交替执行。 阅读全文
posted @ 2018-05-29 13:46 汪凡 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 客户端: 服务端: 阅读全文
posted @ 2018-05-29 12:42 汪凡 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 这里让客户端给服务端发送的数据被服务端自动发回来 客户端: 服务端: 服务端这里不需要编码或者解码,直接回发就行 阅读全文
posted @ 2018-05-29 12:37 汪凡 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 客户端: 服务端: 阅读全文
posted @ 2018-05-29 12:32 汪凡 阅读(805) 评论(0) 推荐(0) 编辑
摘要: import socket if __name__ == '__main__': # 创建tcp服务端socket tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 立即释放端口号,重用端口 # SOL_SOCKET: 表示当前socket # SO_REUSE... 阅读全文
posted @ 2018-05-29 12:29 汪凡 阅读(313) 评论(0) 推荐(0) 编辑
摘要: import socket # 和udp的区别显而易见,udp发送和接收的是一个元祖,因为udp是不建立连接的,只有得到了对方的端口和ip才能进行沟通。 # 而tcp不是,tcp发送和接受的是一个字符串,因为在进行通信前必须先建立好连接确定好了ip以及端口, # 所以不用在接受和发送的时候去特地的发送或者接受端口号和ip地址。 # 总结来说TCP有以下几点: # 面向连接(确认有创建三... 阅读全文
posted @ 2018-05-29 12:27 汪凡 阅读(381) 评论(0) 推荐(0) 编辑
摘要: import turtle turtle.screensize(400, 300, "pink") turtle.setup(1000, 600) turtle.write('作者:好一朵玫瑰花 ', move = True, align = 'left', font = ('楷体', 16, 'normal')) # 设置初始位置 turtle.penup() turt... 阅读全文
posted @ 2018-05-29 12:14 汪凡 阅读(2124) 评论(0) 推荐(0) 编辑
摘要: from turtle import * a = Turtle() screensize(400, 300, "blue") setup(width=1300, height=650, startx=20, starty=20) a.speed(10) a.hideturtle() a.pensize(2) a.color('red', 'pink') a.up() a.goto(200, 0... 阅读全文
posted @ 2018-05-20 20:05 汪凡 阅读(780) 评论(1) 推荐(0) 编辑
摘要: 略作改动: 阅读全文
posted @ 2018-05-20 19:40 汪凡 阅读(14256) 评论(1) 推荐(1) 编辑
摘要: 上一篇我们说了关于自排如果主键是0的问题,在这里我搞清楚了原因,导致这种情况是因为在SQL中对自排设置了初始值: 从这里可以看到这两个变量一个是自增的初始值,一个是增量,这里都是1,所以在设置自增的时候会把那个字段原来存在的所有0变成从1开始的步长为1的等差数列。 但是这个数值是可以被修改的(不过在 阅读全文
posted @ 2018-05-19 17:12 汪凡 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 开始不设置主键 表的设计如下: 如果id的位置有好几个0的话:设置主键并且自动排序时,0会从1开始递增; Insert 进去 id = 0的数据,数据会从实际的行数开始增加,和从0变化不一样; 现在主键是没有0的,如果把某个id改成0的话,0不会变!直接会进行排序; 再insert一个id=0的看看 阅读全文
posted @ 2018-05-18 01:56 汪凡 阅读(855) 评论(1) 推荐(0) 编辑
摘要: 写这篇随笔的目的是我发现了在上一篇关于My SQL的随笔中存在一些不严谨的代码问题,在这里再次简单的总结一下并加以改进,以代码为主。 # !每行命令必须以分号(;)结尾 先通过命令行进入数据库客户端 mysql -h服务端ip地址 -P(大写)服务端使用的端口,一般为3306 -p(小写) 回车之后 阅读全文
posted @ 2018-05-18 01:32 汪凡 阅读(1464) 评论(1) 推荐(1) 编辑
摘要: 1.安装mysql客户端流程: - 登录navicat官网下载 - 将压缩包拷贝ubuntu中进行解压,解压命令:tar zxvf navicat.tar.gz - 进入解压目录,运行命令./start_navicatt - 如果试用是灰色的则进行下一步 - 删除 .navicat64/ 隐藏文件, 阅读全文
posted @ 2018-05-16 00:40 汪凡 阅读(5139) 评论(1) 推荐(0) 编辑
摘要: VIM - Vi IMproved 7.4 编辑器操作汇总 vim [参数] [文件 ..] 编辑指定的文件 或: vim [参数] - 从标准输入(stdin)读取文本 或: vim [参数] -t tag 编辑 tag 定义处的文件 或: vim [参数] -q [errorfile] 编辑第一 阅读全文
posted @ 2018-05-13 01:07 汪凡 阅读(8218) 评论(0) 推荐(0) 编辑
摘要: 1. 快速启动终端:ctr+alt+t2. 终端字体放大: ctr+shift+'+'3. 终端字体缩小: ctr+'-'4. ls: 查看当前目录下文件信息 4.1 ls BD ABC 同时查看两个目录5. pwd: 查看目录的路径6. touch: 创建文件 6.1 touch 1.txt 2. 阅读全文
posted @ 2018-05-13 00:40 汪凡 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 首先关于在python中单线程,多线程,多进程对cpu的利用率实测如下: 单线程,多线程,多进程测试代码使用死循环。 1)单线程: 2)多线程: 3)多进程: 查看cpu使用效率: 开始观察分别执行时候cpu的使用效率: 1)单线程执行的时候: 2)多线程执行的时候: 3)多进程执行的时候: 总结: 阅读全文
posted @ 2018-05-13 00:17 汪凡 阅读(4605) 评论(4) 推荐(0) 编辑
摘要: import socket import re import os import sys # 由于前面太繁琐,可以用类封装一下,也可以分几个模块 class HttpServer(object): def __init__(self,port): # 1、服务器创建负责监听的socket self.socket_watch = socket.socke... 阅读全文
posted @ 2018-05-12 00:16 汪凡 阅读(320) 评论(0) 推荐(0) 编辑
摘要: import socket import re import os def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求报文,解析,返回 """ # 1、服务器接收客户端的请求报文 request = socket_con.recv(4096).decode() # 以行切割请求报文为列表 ... 阅读全文
posted @ 2018-05-12 00:04 汪凡 阅读(368) 评论(0) 推荐(0) 编辑
摘要: import socket def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求报文,解析,返回 """ # 服务器接收客户端的请求报文 request = socket_con.recv(4096).decode() print(request) # 服务器拼接响应报文并回复 ... 阅读全文
posted @ 2018-05-11 23:59 汪凡 阅读(286) 评论(0) 推荐(0) 编辑
摘要: import socket def handle_client(socket_con): """ 接收来自客户端的请求,并接收请求报文,解析,返回 """ # 服务器接收客户端的请求报文 request = socket_con.recv(4096).decode() print(request) # 服务器拼接响应报文并回复 ... 阅读全文
posted @ 2018-05-11 23:56 汪凡 阅读(232) 评论(0) 推荐(0) 编辑