zoukankan      html  css  js  c++  java
  • python20181223

    1.什么是面向对象的mro

    mro是为了找到当前的类的继承顺序关系。

    2.json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?

    在序列化时,中文汉字总是被转换为unicode码,在dumps函数中添加参数ensure_ascii=False即可解决。

    3.简述 yield关键字。

    生成迭代器

    4.简述 OSI 七层协议。

    物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

    5.什么是C/S和B/S架构?

    6.简述 三次握手、四次挥手的流程。

    三次握手:
        第一次握手
    1:客户端先向服务端发起一次询问建立连接的请求,并随机生成一个值作为标识
        第二次握手
    2:服务端向客户端先回应第一个标识,再重新发一个确认标识
        第三次握手
    3:客户端确认标识,建立连接,开始传输数据

    7.GIL锁是什么鬼

    GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。

    8.流式套接字有什么特点

    9.如何在一个function里面设置一个全局的变量? 

    解决方法是在function的开始插入一个global声明

    10.python下多线程的限制以及多进程中传递参数的方式

    python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意思,大家都是轮着用的,这叫“并发”,不是“并行”。
    多进程间共享数据,可以使用 multiprocessing.Value 和 multiprocessing.Array

    11.什么是pickling和unpickling?

    编程练习

    1.创建一个文件,文件的第一行写入0,再创建20个任务线程,他们同时打开文件并将文件第一行读出来,加1写回去(将文件原有值覆盖掉)请保证20个任务线程完成后,文件中的第一行一定是20!

    from threading import Thread
    
    with open("text.txt", mode="w+") as f:
        f.write("0")
    
    def thr():
        with open("text.txt", mode="r") as g:
            read = int(g.read())
            read += 1
            print(read)
        with open("text.txt", mode="w+") as h:
            h.write(str(read))
    
    if __name__ == "__main__":
        for i in range(20):
            m = Thread(target=thr)
            m.start()
            m.join()

    2.完成一个cs架构程序,服务端一旦接受到客户端请求文件路径后,判断此文件是否存在,如果存在,将文件内容发送给客户端,如果不存在,也请告知客户端.

  • 相关阅读:
    Ant: Class not found: javac1.8
    (转)ant 使用指南
    炼数成金(dataguru)IT技能修炼
    [原创]记我的6年测试经历
    CentOS6.5 安装并配置vsftpd
    炫龙炎魔T1笔记本 Win7 系统安装
    Oracl数据库+PL/SQL安装与配置
    C# 面试题
    Linux安装Python3后,如何使用pip命令
    CentOS7 Python2 和Python3 共存(Python3安装)【转】
  • 原文地址:https://www.cnblogs.com/zhanggd/p/10165120.html
Copyright © 2011-2022 走看看