zoukankan      html  css  js  c++  java
  • 进程和线程

    补充  函数的生成器

    Yield:可将函数变成一个迭代器(即生成器)

    Try……except:尝试执行try中的代码,若有错,则被except捕获,但整个程序不会崩溃。

    1.不定长参数

      传参方式:位置传参、带参数名的传参

    1)args (位置传参)

      def h(*args):

        print(args)

      h(1,2,3,4,5,6)

    注:输出为元组

    2)**kwargs (带参数名的传参)

      def h(**kwargs):

        print(kwargs)

      h(a=1,b=2,c=3)

    注:输出为字典

    3)不定长参数

      def h(*args,**kwargs):

        print(args)

        print(kwargs)

      h(1,2,3,a=1,b=2,c=3)

    4)装饰器带参数

      不定长参数与装饰器结合使用(重要的参数要用带参数名的来进行传参,从而让**kwargs捕获):

    2.线程和进程

      multiprocessing是Python提供的一个跨平台的多进程模块,通过它可以很方便地编写多进程程序,在不同的平台(Unix/Linux, Windows)都可以执行。

      

      从上面的例子可以看出,如果程序中的代码只能按顺序一点点的往下执行,那么即使执行两个毫不相关的下载任务,也需要先等待一个文件下载完成后才能开始下一个下载任务,很显然这并不合理也没有效率。

       下面我们通过Process类创建了进程对象,通过target参数我们传入一个函数来表示进程启动后要执行的代码,后面的args是一个元组,它代表了传递给函数的参数。Process对象的start方法用来启动进程,而join方法表示等待进程执行结束。运行上面的代码可以明显发现两个下载任务“同时”启动了,而且程序的执行时间将大大缩短,不再是两个任务的时间总和。

    2)多进程的库

  • 相关阅读:
    Linux内存分析
    mysql 分表
    安装YCM
    c/c++ 之静态库
    ubuntu20 宽带连接
    数据对齐
    计算机中浮点数的表示
    整数的表示
    信息的储存
    SparseTable ST表
  • 原文地址:https://www.cnblogs.com/liujing17/p/11328612.html
Copyright © 2011-2022 走看看