0
点赞
收藏
分享

微信扫一扫

【python 面试题 - 线程 】- 吊打面试官的经典面试题整理


线程

1.GIL锁是什么回事?

global interpreter lock全局解释其所,Cpython中,对解释器加的一把锁,导致同一时刻同一进程中只有一个线程能够访问cpu,GIL锁的出现,保证了多线程对共享数据的大部分操作,也就是类原子操作时的数据安全。但是无法避免所有修改共享数据的安全。

2.在python中是否线程安全?

不是,在Cpython解释器中,代码都会转换成机器码,即时有了GIL锁的限制,多线程对数据的非原子性修改操作,也会因为操作系统的对cpu时间片轮转而导致对数据修改的不安全。

3…什么叫做死锁?

多道操作系统中,是指多个进程或线程在执行过程中,因争夺资源而造成的一种互相等待的僵局现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程/线程。

4、logging模块是否是线程安全的?

是,因为logging模块的写入是追加写

5.threading.local的作用?

创建全局ThreadLocal对象:

localVal = threading.local()

localVal.val = “Main-Thread” # 为全局线程对象赋值

用来保存一个全局变量,只能在当前前线程中才能访问

不同线程对其赋值,不会覆盖,而会在自己的线程单独创建控件来存储这个变量

不同线程的前程变量local.val是隔离的,其他线程无法访问



举报

相关推荐

0 条评论