线程是什么?线程和进程的区别,怎么最好的理解使用和快熟掌握多线程?多线程的各种坑以及多线程锁的简介和使用

本文深入解析了多线程的概念,对比了进程与线程的区别,并详细介绍了如何在Python中通过面向过程和面向对象的方式创建线程。此外,还探讨了线程之间的资源共享、线程安全与同步机制,以及如何利用锁来确保数据的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多线程(thread)

    如何理解线程?


             比如在qq里面,可以同时语音和视频,在word里面,可以同时打字、拼写检查
             这些同时执行的就可以理解为线程
             多任务-多进程、多线程


         进程和线程的区别


                    (1)线程属于进程,一个线程只能属于一个进程,一个进程里面可以有多个线程。
                    (2)系统分配资源的基本单位是进程。
                    (3)系统调度资源的基本单位是线程。


        画图理解


                以前的程序只有一个进程,主进程,在这个进程里面只有一个线程,主线程


          创建线程


                     (1)面向过程创建
                                  t = threading.Thread(target=xxx, name=xxx, args=(xxx,))
                                  target: 线程启动要执行的函数
                                  name: 给线程起名字   threading.current_thread().name
                                  args: 主线程给子线程传递参数
                                  t.start()
                                  t.join()
                    (2)面向对象创建
                                线程之间是否共享局部变量
                                         不共享
                                 线程之间是否共享全局变量
                                         共享
                                线程安全、线程同步
                                      a += 1
                                多个线程往同一个文件中写内容
                                 锁,独自使用,开锁,
                               在操作之前加锁,然后操作,操作完毕之后,释放锁
                               上锁的时候是抢的。
                               牺牲了性能。
                                  from threading import Lock
                              # 创建一把锁, 多个线程使用一把锁
                               lock = Lock()
                                 # 上锁
                               lock.acquire()
                                 # 释放锁
                               lock.release()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值