20181223作业

 

1.什么是面向对象的mro

  答:面向对象的mro是指类的继承顺序

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

   答:json.dump(jsonDate,ensure_ascii=False)

3.简述 yield关键字。

   答:yield 是一个类似 return 的关键字,调用这个函数的时候,函数内部的代码并不立马执行 ,

    只是返回一个生成器对象,在使用for进行迭代的时候,函数中的代码才会执行。

4.简述 OSI 七层协议。

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

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

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

7.GIL锁是什么鬼

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

9.如何在一个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架构程序,服务端一旦接受到客户端请求文件路径后,判断此文件是否存在,如果存在,将文件内容发送给客户端,如果不存在,也请告知客户端.

原文地址:https://www.cnblogs.com/ljf5201314/p/10163903.html