Python多线程学习(一)

python多线程之一,首先我们来看代码

import threading
import time


def test1():
    for i in range(5):
        print("-----test1----%d---" %i)


def test2():
    for i in range(5):
        print("-----test2----%d---" %i)


def main():
    t1=threading.Thread(target=test1)
    t2=threading.Thread(target=test2)
    t1.start()
    time.sleep(2)
    t2.start()
    print(threading.enumerate())

if __name__ == '__main__':
    main()

老规矩,看代码先从main函数开始看,我们先用threading模块下的Thread类,target为对应的属性,后面填入我们的线程名,也就是对应要执行的函数名,这里有两个,一个为test1,一个为test2,然后t1.start()   t2.start(),这个地方需要注意,target=函数名,不能加括号,比如target=test1(),这样代表的意思就是执行这个函数,而不是传入这个参数。

我们按住command(windows为control),左键点击Thread进去可以看得到以下代码

class Thread:
    
    _initialized = False
    
    _exc_info = _sys.exc_info
   
    def __init__(self, group=None, target=None, name=None,
                 args=(), kwargs=None, *, daemon=None):
        
        assert group is None, "group argument must be None for now"
        if kwargs is None:
            kwargs = {}
        self._target = target
        self._name = str(name or _newname())
        self._args = args
        self._kwargs = kwargs
        if daemon is not None:
            self._daemonic = daemon
        else:
            self._daemonic = current_thread().daemon
        self._ident = None
        self._tstate_lock = None
        self._started = Event()
        self._is_stopped = False
        self._initialized = True
       
        self._stderr = _sys.stderr
        
        _dangling.add(self)

然后继续,threading.enumerate()这个代码的意思是查看进程,我们的程序有一个主线程,然后我们start了test1和test2两个子线程,在python里面,主线程会等子线程结束之后再结束主线程,所以我们可以通过将代码修改为while True无线循环来不停的查看当前有几个线程,这里就不作多解释和演示了。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值