乐鱼电竞

  • 教育行业A股IPO第一股(股票代码 003032)

    全国咨询/投诉热线:400-618-4000

    Python就业班笔记整理(二)

    更新时间:2018年07月27日09时57分 来源:乐鱼播客 浏览次数:

    Listen(backlog)数值代表的含义?
    监听变主动为被动,backlog指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排队,如果队列满,就拒绝请求。请注意,最大限制是取决于操作系统,Ubuntu上默认是128
    TCP服务端recv解堵塞的两种方式?
    1、收到客户端发送的数据
    2、客户端关闭了套接字
    可以通过判断收到数据的长度来判断客户端是否下线,长度为0代表已下线。
    什么是多任务?
    简单地说,就是操作系统可以同时运行多个任务。实现多任务有多种方式,线程、进程、协程。
    并行和并发的区别?
    并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)
    并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的
    真的多任务叫并行,假的多任务叫并发。
    什么是线程?
    可以简单理解为同一进程中有多个计数器,每个线程的执行时间不确定,而每个进程的时间片相等,线程是操作系统调度执行的最小单位
    线程的创建步骤
    Import threading
    # 创建一个线程对象
    t1 = threading.Thread(target=func_name, args=(num,), name=”子线程名字”)
    # 创建一个线程并启动
    t1.start()
    # 等待子线程执行完毕之后再继续向下执行主线程
    t1.join()
    备注:主线程会等待子线程结束之后才会结束,主线程一死,子线程也会死。线程的调度是随机的,并没有先后顺序。
    枚举函数enumerate的用法
    enumerate()是python的内置函数,在字典上是枚举、列举的意思。用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。通过threading.enumerate()就可以获取线程列表。
    互斥锁的运用
    由于多线程之间共享全局变量就会导致出现资源竞争的问题,为了避免这种竞争出现,利用互斥锁可以实现线程同步。
    # 创建锁
    Mutex = threading.Lock()
    # 加锁
    Mutex.acquire()
    # 释放锁
    Mutex.release()
    什么是死锁?
    在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁,尽管死锁很少发生,但一旦发生就会造成应用的停止响应。
    什么是进程?
    程序是静态的,当程序运行起来就叫做进程。是操作系统分配资源的基本单元。

    作者:乐鱼播客python培训学院
    首发:http://python.itcast.cn/
    0 分享到:
    和我们在线交谈!
    【网站地图】【sitemap】