python3安装虚拟环境

#1.安装虚拟环境
pip3 install virtualenv
#2.创建虚拟环境
python3 -m venv venv
#或者
python3 -m venv .
#3.激活虚拟环境
在开始工作前,先要激活相应的虚拟环境:
. venv/bin/activate
在 Windows 下:
venv\Scripts\activate
#激活后,你的终端提示符会显示虚拟环境的名称。

使用freeze 给所有模块搬家

# 导出安装模块的文档
pip freeze > my_freeze.txt

# 或者指定地址
pip freeze > e:\my_freeze.txt

# 在另一个环境下,安装该文档里的模块
pip install -r my_freeze.txt
 

可能遇到的问题以及解决方法

Python多线程死锁问题

死锁的原理非常简单,可以用一句话来描述。当多个线程访问多个锁时,不同的线程持有不同的锁。它们正在等待其他线程释放锁,因此陷入永久等待。例如,如果线程a持有1号锁并等待2号锁,而线程B持有2号锁并等待1号锁,则它们永远不会等待执行日期,这称为死锁。
 
关于僵局有一个著名的问题,叫做哲学家的进餐问题。有五个哲学家围坐在一起,他们每人需要两个叉子吃东西。如果他们同时拿起左手边的叉子,他们会一直等待右侧的叉子松开。这样,他们就被困在永远的等待中,所有这些哲学家都会饿死。
python3安装虚拟环境并使用freeze命令迁移模块-LMLPHP
 
这是一个非常生动的模型,因为在计算机并发场景中,某些资源的数量往往是有限的。很可能是多个线程抢占。如果处理不当,每个人都会获得一个资源,然后等待另一个资源。
 
解决死锁问题的方法很多。这里我们介绍一个相对简单的方法,即对这些锁进行编号。当一个线程需要同时持有多个锁时,它必须按升序访问这些锁。我们可以用上下文管理器很容易地做到这一点。
 
python3安装虚拟环境并使用freeze命令迁移模块-LMLPHP
 
对于死锁,排序锁只是解决方法之一。另外,解决死锁的模型也很多。例如,我们可以让线程在无法持有新锁时放弃所有现有锁。例如,我们可以建立一个机制来检测死锁的发生并进行处理。事实上,有很多方法可以使分歧。这些方法的原理是不同的。它们涉及大量操作系统的基本概念和知识。学生对锁具的操作系统有兴趣和深入的了解。
04-01 05:16