Python學習筆記十一
1. 協程
并發的解決方案:
多進程
多線程
什么叫并發:看起來同時進行
如何實現并發:切換+保存狀態
進程線程都是由操作系統調度的
協程:單線程下實現的并發,應用程序級別的切換,操作系統無法感知
找到一個解決方案:1.在多個任務直接切換+保存狀態
2.檢測應用程序的IO,實現遇到IO才切換。
并發提高效率:遇到IO的時候切換,才能提高效率,如果是計算,就不會提高效率。
yield:能實現協程,但是不能提高效率。
greenlet:需要pip3 install greenlet
from greenlet import greenlet
g1=greenlet()
g1.switch()
2. gevent()
安裝:pip3 install gevent
from gevent import monkey
monkey.patch_all() 這兩行代碼寫到文件的首部
import gevent
gevent.sleep(2)
g1=gevent.spawn(eat,name='egon')
g2=gevent.spawn(play,'alex')
g1.join()
g2.join()
3. 利用gevent寫一個socket連接。
單線程實現并發連接
4. socketserver模塊
基于TCP
import socketserver
class MyTCPhandler(socketserver.BaseRequestHandler): #通信
def hanler(self):
while True:
data=self.request.recv(1024)
self.request.send(data.upper())
if __name__=='__main__':
socketserver.ForkingTCPServer #windows不能使用多進程模式
s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTCPhandler)
s.server_forever()
基于UDP:
import socketserver
class MyTCPhandler(socketserver.BaseRequestHandler): #通信
def hanler(self):
client_data=self.request[0]
self.request[1].sendto(client_data.upper(),self.client_address)
if __name__=='__main__':
socketserver.ForkingTCPServer #windows不能使用多進程模式
s=socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyTCPhandler)
s.server_forever()
5. 數據庫介紹及mysql安裝
yum install mysql_server mysql -y
6. mysql的基本管理
mysql -h127.0.0.1 -uroot -p
mysqld --install
設置密碼:
mysqladmin -uroot -p password "123";
破解密碼:
net stop mysql
mysqld --skip-grant-tables 跳過授權表
mysql -uroot -p
update mysql.user set password=password('') where user='root' and host='localhost';
flush privileges;
修改my.ini配置文件。
在mysqld里面設置:skip-grant-tables
[mysqld]
[mysql] mysql自帶的客戶端
user='root'
password='123'
[client] 所有的客戶端
user='root'
password='123'
建立賬號:
grant select,update on *.* to
7. mysql的基本sql語句
庫 增刪改查
表 增刪改查
記錄 增刪改查
8. mysql的存儲引擎
innodb
9. mysql的數據類型:
數字類型:
整型:默認有符號,指定無符號:unsigned
int
tinyint
bigint
浮點型
float
double
decimal
字符類型
char
varchar
時間類型
date
time
datetime
timestamp
year
枚舉類型
enum
setn

浙公網安備 33010602011771號