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))

  • 相关阅读:
    [转载]在sharepoint里增加PDF图标显示收藏主题
    CuratorFramework开源Zookeeper快速开发框架介绍
    Zookeeper和CuratorFramework实践之:分布式消息队列
    Zookeeper和CuratorFramework实践系列之: 配置管理
    JS 文字向上滚动代码
    sql递归查询问题
    双线单IP和双线双IP机房的区别
    js获取标准北京时间
    ftp 21端口被占用解决办法
    "由于没有远程桌面授权服务器可以提供许可证..."不能远程桌面解决方法
  • 原文地址:https://www.cnblogs.com/hjlin/p/10663356.html
Copyright © 2011-2022 走看看