多线程的理解,以及用Python语言实现和jmeter工具来理解多线程

一,多线程的理解

     简单的理解:多线程,其实就是多个用户

     广义的理解:多线程:解决多任务同时执行的需求,合理使用CPU资源。多线程的运行是根据CPU切换完成,如何切换由CPU决定,因此多线程运行具有不确定性。

二,多线程有什么用?

多线程的好处: https://blog.csdn.net/ThatBoys/article/details/51869819 

1.使用线程可以把占据时间长的程序中的任务放到后台去处理

2.用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件事件的处理,可以弹出一个进度条来显示处理的进度

3.程序的运行效率可能会提高

4.在一些等待的任务实现上如用户输入,文件读取和网络收发数据等,线程就比较有用了.

多线程的缺点:

1.如果有大量的线程,会影响性能,因为操作系统需要在它们之间切换.

2.更多的线程需要更多的内存空间

3.线程中止需要考虑对程序运行的影响.

4.通常块模型数据是在多个线程间共享的,需要防止线程死锁情况的发生

 

     相比单线程来说,多线程可以解决时间问题,处理业务的响应。具体举例:

    我们使用jmeter去执行访问百度的接口,每次执行后等待1s,执行10次

    单线程要执行上诉操作至少要耗时:10s以上 , 多线程执行只需要2s。具体操作如下:

   单线程执行:多线程执行:

三,Python实现多线程的方式

一,多线程的使用

1.实现方式两种

from threading import threads

//创建treads

t = threading.Thread(target=fun,args=(i,))

t.start()

 

2.定义类,继承threading.Thread

class MyThread(threading.Thread): def __init__(self,func,args,name=''): #threading.Thread.__init__(self)

super(MyThread.self).__init__()#调用父类的初始化,这个推荐使用 self.name=name self.func=func self.args=args def run(self): """执行方法""

二,tomorrow模块,使用多线程,方便执行测试用例。

利用装饰器@@threads(4)  4表示线程数

https://www.cnblogs.com/yoyoketang/p/8392471.html

如下代码:

会发现使用了多线程,打印字符串,速度会提高很快。

from time import sleep

@threads(4)

def run(i):

sleep(1)

print(i)

 

def run2(i):

sleep(1)

print(i)

 

if __name__ == "__main__":

# for i in range(10):

# run()

start = time.time()

for i in range(30):

run(i)

end = time.time()

print("Time: %f seconds" % (end - start))

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值