• python 之路10 多线程


    1. socket
    1.创建模块
    2.创建socket
    3.send sendall
    send ret = send(bytes('jkdfskjdjsf',encoding = 'utf8')) ret 为发送了多少字节
    sendall 会循环send 直到发送完所有数据

    recv(2048) 2048一次最大可以接受多大字节的数据




    2. socketserver
    1.自定义类
    2.自定义的类继承socketserver
    3.重新定义handle函数
    4.调用自定义类
    5.运行


    3. 上节作业
    1. socket 发送字符串
    2. socket 发送文件
    客户端:
    发送文件大小
    发送可以发送消息

    服务端:
    接受消息(文件大小)


    小知识
    作用域
    python 作用域链,由内向外找,直到找不到报错

    python中无块级作用域
    java/c# 不可输出
    python/javascript 可以输出

    if 1==1:
    name = 'wyx'

    print(name) #name 可以输出

    #python中以函数作为作用域
    def func():
    name = 'wyx'
    print(name) 无法输出


    #python作用域在执行函数之前已经确定完 输出 wyx

    1. #name = 'wyx'
    # def f1():
    # print(name)
    #
    # def f2():
    # name = 'eric'
    # return f1
    # ret = f2()
    # ret()


    #第二个等于第三个
    2. # li = [lambda :x for x in range(10)]
    # r = li[0]()
    # print(r)

    3. li = []
    for x in range(10):
    def list0():
    return x
    li.append(list0)

    r = list0()
    print(r)
    print(li[0]())

    IO多路复用
    概述
    select,poll,epoll
    监听socket对象内部是否变化了
    是么时候发生变化 链接或者收发消息
    服务器端的对象发生变化 -->表示有新链接
    sk对象变化: 有新的链接
    conn变化: 要收发消息了


    多线程,多进程
    1. 一个应用程序,可以有多进程,多线程
    2. 默认是单进程 单线程
    3.单进程,多线程

    单进程,多线程使用方式:
    IO操作,不占用CPU

    多进程:计算性操作,
    4.GIL,全局解释器锁
    ---> 多线程 多进程 提高并发
    IO密集型:多线程
    计算密集型:多进程


  • 相关阅读:
    ARM备忘
    [转]iOS Assembly Tutorial: Understanding ARM
    内部排序->插入排序->其它插入排序->表插入排序
    内部排序->插入排序->其它插入排序->2-路插入排序
    内部排序->插入排序->其它插入排序->折半插入排序
    内部排序->插入排序->直接插入排序
    内部排序(总结篇)
    Leetcode-5173 Prime Arrangements(质数排列)
    P2051-中国象棋
    P2577-午餐
  • 原文地址:https://www.cnblogs.com/bigjerry/p/5673589.html
Copyright © 2020-2023  润新知