zoukankan      html  css  js  c++  java
  • 周日作业

    1.什么是面向对象的mro

     输出类的继承顺序

    .__mro__

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

     encoding'utf-8'

    3.简述 yield关键字。

     生成器关键字,能有效节省系统空间

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

     global 全局变量

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

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

    11.什么是pickling和unpickling?

     可以将几乎任何的python对象(甚至是python的代码),转换为字符串表示,这个过程称为pickling.而要从里面重新构造回原来的对象,则称为unpickling.在pickling和unpicking之间,表示这些对象的字符串表示,可以存于一个文件,也可以通过网络远程机器间传输。

    编程练习

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

    from threading import Thread,Lock
    import time
    
    lock = Lock()
    
    
    def job():
        lock.acquire()
    
        with open('text.txt', mode='r') as f:
            k = int(f.read())
            print(k)
            time.sleep(3)
            k += 1
            print(k)
        with open('text.txt', mode='w+') as g:
            g.write(str(k))
        lock.release()
    
    l = []
    
    if __name__ == '__main__':
        for i in range(20):
            m = Thread(target=job)
            l.append(m)
            m.start
  • 相关阅读:
    WPF ListView 排序
    java视频转码博客
    stream的seek方法实例
    Metro各种流转换
    性能测试并发对比(JMeter,Locust和Gatling篇)
    MYSQL之——查询练习题
    MYSQL之——复杂查询
    MYSQL之——简单查询
    MYSQL之——基础SQL
    MySQL之——忘记root密码解决方案
  • 原文地址:https://www.cnblogs.com/ZHang-/p/10161821.html
Copyright © 2011-2022 走看看