Python线程模块threading

本文介绍了Python线程模块threading的基本概念和使用方法,包括如何创建线程、确定当前线程、设置守护线程以及如何通过互斥锁控制资源访问,避免死锁问题。
摘要由CSDN通过智能技术生成

一、介绍

线程是什么?线程有啥用?线程和进程的区别是什么?
线程是操作系统能够进行运算调度的最小单位。被包含在进程中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

二、Python如何创建线程

1. 方法一:创建Thread对象

步骤:

  1. 目标函数
  2. 实例化Thread对象
  3. 调用start()方法

import threading


# 目标函数1
def fun1(num):
    for i in range(num):
        print('线程1: 第%d次循环:' % i)


# 目标函数2
def fun2(lst):
    for ele in lst:
        print('线程2: lst列表中元素 %d' % ele)


def main():
    num = 10
    # 实例化Thread对象
    # target参数一定为一个函数,且不带括号
    # args参数为元组类型,参数为一个时一定要加逗号
    t1 = threading.Thread(target=fun1, args=(num,))
    t2 = threading.Thread(target=fun2, args=([1, 2, 3, 4, 5],))

    # 调用start方法
    t1.start()
    t2.start()


if __name__ == '__main__':
    main()

2. 方法二:创建子类继承threading.Thread类


import threading
import os


class Person(threading.Thread):
    def run(self):
        self.sing(5)
        self.cook()

    @staticmethod
    def sing(num):
        for i in range(num):
            print('线程[%d]: The person sing %d song.' % (os.getpid(), i))

    @staticmethod
    def cook():
        print('线程[%d]:The person has cooked breakfast.' % os.getpid())


def main():
    p1 = Person()
    p1.start
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值