1. 简述为什么会出现线程不安全,如何解决.
线程是对全局变量随意遂改可能造成多线程之间对全局变量 的混乱(即线程不安全)解决方法:通过引入互斥锁常用来防止两个进程或线程同一时刻访问相同的共享资源, 如果一个线程锁定了一个互斥量,在它解除锁定之前没有其他线程可以锁定这个互斥量。mutex = threading.Lock()
2. 简述死锁发生的原因.举例说明.
是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。
举例:A有一把钥匙用完用完资源以后等待B用钥匙释放资源,但是同时B也在等待A释放资源。这就造成了死锁
3. 将8.threading多线程.py改成多进程.如图
4. 理解队列和栈的区别.
1.1 栈
后进先出
只能从尾部插入数据
只能从尾部取数据。
1.2 队列:
先进先出
只能从队列末尾插入数据
只能从队列头部取出数据