#多进程1.1
import threading
#class myTherading(threading.Thread)#继承类?我不懂.....
def test(p):
print(p)
ts=[]#在列表中必须要先定义才能再次使用
for i in range(1,15):
th=threading.Thread(target=test,args=`[i])#创建一个进程
#必须要加target和args,如果不加的话无法运行
th.start()#运行这个进程
ts.append(th)
for i in ts:
i.join()#只有当这个进程结束了才能继续接下来的程序
print('ending')
"""
"""
多线程1.2
1.全局锁是一个很重要的概念
在任意的一个指定时间有且只有一个线程在运行
线程安全 可能有歧义
2.多线程 复杂度高 不建议使用
一个程序大多数情况下只和代码行数有关
3.多线程有点爽?
数据库连接池是什么?
小脚本可以使用多线程 但是对于大的程序而言会增加记忆负担和读代码的负担
4.io操作用到多线程?必须要lock acquire release
lock 互斥锁
假设5个线程对一个文件进行操作,那么只有当一个线程对这个文件操作完才能进行下一个操作
加锁 acquire
释放锁 release
加锁后一定要进行释放不然就会变成死锁
5.rlock 可重入锁,防止死锁的存在,有几个加锁就要有几个释放
"""
"""
#数据修改成测试
import threading
num=0
def t():
global num
num+=1
print(num)
for i in range(10):
d=threading.Thread(target=t)
d.start()
import time
def a():
print("a begin")
time.sleep(2)
print('a end')
def b():
print('b begin')
time.sleep(2)
print("b end")
b_time=time.time()
a()
b()
print(time.time()-b_time)#用了4S
import threading
_a=threading.Thread(target=a)
_b=threading.Thread(target=b)
_a.start()
_b.start()
_a.join()
_b.join()
print(time.time()-b_time)#用了2S
"""
"""
协程入门
yield生成器
1包含yield的函数 是一个可迭代的对象
yield会把后面的值给拿回来
send则会把东西给yield前面的
x=yield '这个东西没有赋值'
.send("这东西会给x")
2生产者和消费者行为
3无需立即执行 需要的时候才执行
4斐波拉切数列的例子
"""
"""
socket
udp tcp/ip socket
HTTP
tcp/ip udp 都是通讯协议
netcat 小技巧
socket服务器
创建socket对象,socket.socket(1,2)
1.AF_INET或者AF_UNIX
2.SOCK_STREAM tcp/ip SOCK_DGRAM udp
绑定端口 socket.bind(("Localhost",8888))
socket.listen(n) n代表有几个同时的请求
connection address=sock.accept()
buf=connection.recv(100)
connection.send(buf)
不关闭就惨了 connection.close()
"""
'''
正则表达式是字符串检索引擎
正则表达式的基本概念
{0-9}\{2\}
{0-9} \d代表数字
\{表示这个花括号不在匹配中
{2}前面的匹配N次
{0-9}\{3\}代表数字匹配三次
\w代表一个单词类字符,他无法检索多个字符
单词类字符表示0-9 a-z A-Z 下划线
\w\{0,2\} 意思是字符匹配0-2次
\W表示非单词类字符(大写的W)
^men(shift+6)表示以men开头的东西
+号表示前面的表达式出现了一到无限次
?表示前面的表达式只能出现一次或者零次
*表示前面的表达式出现零次到无限次(为什么*不需要反斜杠????)
python里面的正则表达式
正则模块为re
'''
"""
import re#提取百度的网站
info = '<a href="http://www.baidu.com">baidu</a>'
s=re.findall(r'ht.+m',info)
字符串:"one1two2three3four4" 用正则处理,输出 "1234"
s=re.findall(r'\d+',a)
已知字符串:text = "JGood is a handsome boy, he is cool, clever, and so on..." 查找所有包含'oo'的单词。
s=re.findall(r'\w*oo\w+',text)
已知字符串:
info = 'test, url("http://www.baidu.com")&,dddddd "="" <svg></svg><path></path><img src="http://www.baidu.com">ininnnin<img src="http://www.dd.com">'
要求完成下面2个小功能:
1.1 关闭[img]标签
1.2 将url()中的["]转为[']
最后结果字符串:
"test, url('http://www.baidu.com')&,dddddd "="" <svg></svg><path></path><img src="http://www.baidu.com"></img>ininnnin<img src="http://www.dd.com"></img>"
"""