re threading socket笔记

"""
#多进程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,&nbsp;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,&nbsp;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>"






















"""






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值