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()
原文地址:https://www.cnblogs.com/lhybky/p/10164283.html