python-线程

1、介绍

 线程(Thread):是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。 一个标准的线程线程ID、当前指令指针(PC)、寄存器和堆栈组成

  • 线程的特征:
    1.轻型实体
    2.独立调度和分派的基本单位。
    3.可并发执行。
    4.共享进程资源。

  • 线程的优点:
    1.创建一个新线程的代价要比创建一个新进程小的多
    2.线程之间的切换开销小。
    3.线程占用的资源要比进程少很多
    4.能充分利用多处理器的可并行数量。
    5.等待慢速 IO操作结束以后,程序可以执行其他的计算任务。
    6.计算(CPU)密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现。
    7.IO密集型应用,为了提高性能,将IO操作重叠,线程可以等待不同的IO操作。

  • 线程的缺点:
    1.性能损失
    2.健壮性降低
    3.缺乏访问控制

2、代码演示

1.方式一:

# -*- coding:utf8 -*-
import time
from threading import Thread


def func1(name):
    print(f'{name}请求中....')
    time.sleep(2)
    print(f'{name}请求完毕')


if __name__ == '__main__':
    # 创建线程t1、t2
    t1 = Thread(target=func1, args=('t1', ))
    t2 = Thread(target=func1, args=('t2', ))
    # 开启线程
    t1.start()
    t2.start()
    # 等待线程执行完
    t1.join()
方式一

2.方式二:

# -*- coding:utf8 -*-
import time
from threading import Thread


class MyThread(Thread):
    def __init__(self, name):
        Thread.__init__(self)
        self.name = name

    # run()固定方法
    def run(self):
        print(f"Thread {self.name} start")
        time.sleep(2)
        print(f"Thread {self.name} over")


if __name__ == '__main__':
    # 创建线程
    t1 = MyThread('t1')
    t2 = MyThread('t2')
    # 启动线程
    t1.start()
    t2.start()

    t1.join()
    t2.join()
方式二
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容