多任务-python实现-Thread的基本使用(2.1.1)

@(网络编程)

1.多任务的概念

“多任务工作”指的是当前很普遍的工作状态,一个人同时处理多件事情,比如以下这个常见的画面:写一会报告,刷一下网页,查一下资料,收一下邮件,回去做一下数据,点开微信回应一下,再回去贴图表……诸如此类。今天这个时代,专注在一件事情上,已经近乎不可能了。每个人手上都有一大堆任务,同时开着Word、Excel、PPT,微信和QQ总是同时闪动好几个头像……似乎,不能同时处理这些事情,就是能力不够。
在这里插入图片描述

2.线程

python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的使用
threding的使用

import threading
import time

#子线程
def saySorry():
    print("你好")
    time.sleep(1)


#主线程
if __name__ == '__main__':
    for i in  range(6):
        t=threading.Thread(target=saySorry())
        t.start()

查看当前有多少线程正在运行

import threading
import time

#子线程
def thread1():
    for i in range(5):
        print("你好 %d"% i )
        time.sleep(1)


def thread2():
    for i in range(10):
        print("你好__%d"% i )
        time.sleep(1)



#主线程
if __name__ == '__main__':
    t1 = threading.Thread(target=thread1())
    t2 = threading.Thread(target=thread2())
    t1.start()
    t2.start()

    while True:
        length = len(threading.enumerate())
        print("当前的therad数目为%d" % length)

        if length<= 1:
            break

        time.sleep(0.5)

菜鸟教程thread模块

#!/usr/bin/python3

import _thread
import time

# 为线程定义一个函数
def print_time( threadName, delay):
   count = 0
   while count < 5:
      time.sleep(delay)
      count += 1
      print ("%s: %s" % ( threadName, time.ctime(time.time()) ))

# 创建两个线程
try:
   _thread.start_new_thread( print_time, ("Thread-1", 2, ) )
   _thread.start_new_thread( print_time, ("Thread-2", 4, ) )
except:
   print ("Error: 无法启动线程")

while 1:
   pass

注意

  • 相当于使用了反射的方法,在后面加入要传入的参数,最后个参数后面加,
  • 子线程依附着主线程,所以在菜鸟的教程中加了个死循环的主线程
  • sleep为io操作,在io密集的时候使用多线程有好处,计算密集时不能节约时间

转载于:https://www.cnblogs.com/simon-idea/p/11315312.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值