zoukankan      html  css  js  c++  java
  • Python 基础入门 10_2 进程线程和协程

    """
    线程:是进程执行任务的最小单元。
    线程和进程的区别:
    1.进程是有独立的存储空间,而线程共享的是进程的存储空间
    2.进程是最小的执行单位,而进程是分配和管理资源的最小单位
    3.线程实现的并发数比进程的并发数多
    每一个进程都会有一个主线程,这个主线程管理进程的所有添加的线程。当一个线程被创建,且执行完任务后,这个线程会自动销毁

    线程的模块有:
    1._thread模块 底层模块
    2.threding模块 对_thread进行了封装
    """
    import threading
    var = 1
    def run1():
    print("子线程:%s 开始" %(threading.current_thread().name)) # threading.current_thread(),返回当前线程对象
    print("子线程:%s 结束" %(threading.current_thread().name))

    def run2():
    print("子线程:%s 开始" %(threading.current_thread().name))
    print("子线程:%s 结束" %(threading.current_thread().name))

    def run3():
    print("哈哈哈哈")
    print(threading.currentThread().name)
    print("哈哈哈哈")

    sem = threading.Semaphore(3) #设置线程指定并发数,一个进程同时只能并发指定的个线程
    def run4():
    with sem: #启动线程指定并发数设定
    print("并发",threading.currentThread().name)
    time.sleep(3)

    bar = threading.Barrier(3) #设置线程组合并发数,一个进程的线程组合到指定的线程数后并发,若组合不到,一直等待
    def run5():
    bar.wait() #启动线程组合并发数设定
    print("组合",threading.currentThread().name)
    time.sleep(3)

    # if __name__ =="__main__":
    #
    # t1 = threading.Thread(target=run1) #threading.Thread(target,[args],name) 创建执行targer函数并命名为name的线程,args给这个函数传参
    # t2 = threading.Thread(target=run2)
    #
    # t1.start(),t2.start() #Thread对象.start()启动线程
    # t1.join(),t2.join() #Thread对象.join() 执行线程内容,无视并发
    #
    # t3 = threading.Timer(1,run3) #Thread对象.Timer(interval,target,[args]) 创建一个定时线程,在程序执行后的interval时间后创建线程
    # t3.start(),t3.join()
    #
    # for i in range(5):
    # threading.Thread(target=run4).start()
    #
    # for i in range(5):
    # threading.Thread(target=run5).start()
    #
    # print("主线程(%s)启动" %(threading.current_thread().name))

  • 相关阅读:
    beeline链接hive报错
    Java并发之FairSync和NonfairSync
    如何在 Linux 中将文件编码转换为 UTF-8
    Spring Boot运行原理
    jvm垃圾回收
    jvm调试工具
    Nginx相关
    docker 配置jar ,运行
    centos7的一些安装问题
    Docker
  • 原文地址:https://www.cnblogs.com/hjlin/p/10663356.html
Copyright © 2011-2022 走看看