zoukankan      html  css  js  c++  java
  • 1223 python 鹿宏扬

    from threading import Thread
    import random
    
    def fun(arg):
        flag = True
        for i in range(2,arg):
            if arg % i == 0:
                flag = False
                break
        if flag:
            print('质数为:%d'%arg)
    
    if __name__ == '__main__':
        for num in range(100,301):
            l = ['a','b','c','d']
            r = random.choice(l)
            if r == 'a':
                thr1 = Thread(target = fun,args=(num,))
                thr1.start()
                thr1.join()
            elif r=='b':
                thr2 = Thread(target = fun,args=(num,))
                thr2.start()
                thr2.join()
            elif r=='c':
                thr3 = Thread(target = fun,args =(num, ))
                thr3.start()
                thr3.join()
            else:
                thr4 = Thread(target =fun,args = (num,) )
                thr4.start()
                thr4.join()
    

    1.什么是面向对象的 mro

    获取类的继承顺序,
    

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

    在dumpling函数中添加参数ensure_ascii=False
    

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

    在你将要设置全局前加上global
    

     11.python里的多线程机制和多进程的参数传递方式

    python下的多线程有个全局解释器锁。它的意思是任一时间只有一个线程运用解释器,和单个CPU跑多个程序是一个意思这是并发而不是并行,

    多进程间共享数据

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

    from threading  import Thread,Lock
    lock = Lock()
    def read(file):
        with open(file,mode='r+',encoding ='utf-8' ) as f:
            lock.acquire()
            res=int(f.read())
            print(res)
            f.seek(0,0)
            f.write(str(res+1))
            lock.release()
    
    if __name__ == '__main__':
        l=[]
        for i in range(20):
            l.append(Thread(target=read,args=('./file',)))
        for i in range(20):
            l[i].start()
        for i in range(20):
            l[i].join()
    
  • 相关阅读:
    总结
    PHP的重载-使用魔术方法实现
    用PHP实现一些常见的排序算法
    MySQL分组聚合group_concat + substr_index
    各种链接地址
    在Linux服务器上使用rz命令上传文件时时老报:Segmentation Fault,上传失败
    新安装的windows 10无法更新报0x80240fff错误的解决方案
    通过SSH key获取GitHub上项目,导入到IDEA中
    解压.zip,.tar.gz文件到指定目录,重命名文件
    byte字节数组的压缩
  • 原文地址:https://www.cnblogs.com/lhybky/p/10164283.html
Copyright © 2011-2022 走看看