Python学习笔记之多线程

本文介绍了Python中的多线程概念,包括线程与进程的区别,如何使用_thread和threading模块创建线程,以及线程锁的应用。还探讨了线程优先级队列在生产者-消费者模型中的应用,并提出使用线程池来优化多线程执行效率,减少上下文切换的时间成本。
摘要由CSDN通过智能技术生成
一、什么是线程,什么是进程

       首先,线程和进程都是一个时间段的描述,是cpu工作时间段的描述。

       线程是程序执行流的最小单元,线程有就绪,阻塞和运行三种状态,就绪就是指线程具备所有的运行条件,逻辑上可以运行,只需等待cpu分配时间片即可,运行状态就是指线程占有cpu时间片,正在运行,阻塞是指线程在等待一个事件(如某个信号量),逻辑上不可执行,每一个程序至少有一个线程。线程是程序中一个单一的顺讯控制流程,进程内有一个相对独立的、可调度的执行单元,是系统独立调度和分派cpu的基本单位指令运行时的调度单位,在单个程序中同时运行多个线程完成不同的工左,称为多线程

      进程是cpu分配资源的最小单位,也有就绪,运行,阻塞三种状态。

二,python多线程
      1、使用_thread模块创建两个线程
import time
import _thread
def function_one():
    for i in range(5):
        time.sleep(1)
        print('function_one run')
def function_two():
    for i in range(5):
        time.sleep(1)
        print('function_two run')
def main():
    #创建两个线程
    try:
       thread1 = _thread.start_new_thread(function_one,())
       thread2 =_thread.start_new_thread(function_two,())
    except Exception as Erorr:
        print(Erorr)
    else:
        print('线程创建成功')
        time.sleep(10)
if __name__ == '__main__':
    main()
       2、使用threading模块创建两个线程
import time
import threading
def function(times):
    for i in range(6):
        time.sleep(1)
        print('function_%s run %s'%(times,i))
def main():
    #创建两个线程
    try:
        t1 = threading.Thread(target=function,args=('one',))
        t2 = threading.Thread(target=function,args=('two',))
    except Exception as Erorr:
        print(Erorr)
    else:
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值