我是python中多线程代码的新手.根据我目前的知识,我知道可以在系统内同时生成多个线程,但是2个不同的线程不能同时访问或修改同一个资源.我甚至尝试过很多东西,比如创建很多线程并放入队列等等.但是我总是听到人们说多线程在python中不可用,而你可以使用多处理来利用多核.
请告诉我这是真的吗?python线程只是绿色线程而不是真正的多线程吗?我对python的资源锁定是对的吗?
先感谢您
我的 CentOS 机器中安装了 python2.6 和 python2.7。python2.6安装在/usr/bin/python,我已经从位置的源安装了python2.7/usr/local/bin/python
安装后我的默认 python 更改为 python2.7 而不是 pythn2.6 at /usr/bin,我想使用 python 2.6 at /usr/bin/python。我已经尝试过以下事情已经没有任何效果。
/usr/bin请让我知道如何安装 python 2.7 和 2.6,并将 python 2.6 作为我的默认版本。我的 arch linux 盒子也有同样的事情,但这不适用于我的 centos 盒子。
附上我的 .bash_profile,
# .bash_profile
export _BASH_PROFILE=1
# Get the aliases and functions
if [ -z "$_BASHRC" ]; then
. ~/.bashrc
fi
unset _BASH_PROFILE
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME=""
export …Run Code Online (Sandbox Code Playgroud) 我试图在一些已经定义的div中加载一个项目的一些细节点击该项目.我有两种方法可以做到这一点.
注意:我使用python/django作为后端,并在前端使用jquery
我的第一种方式
Views.py
def get_item_data(id):
obj = MyClass.objects.get(pk=id)
html = """
<div>All Details Here, 1. {0}, 2. {1}</div>
""".format(str(obj.id), str(obj.name))
return HttpResponse(html)
Run Code Online (Sandbox Code Playgroud)
myapp.js
$('#myid').on('click', function(){
$.ajax({
type: "GET",
url: GET_DATA,
data: dataString,
success: function(res) {
$('#addl_container').html(res);
}
});
});
Run Code Online (Sandbox Code Playgroud)
II.另一种方法
Views.py
def get_item_data(id):
obj = MyClass.objects.filter(pk=id).values()
return HttpResponse(simplejson.dumps(obj))
Run Code Online (Sandbox Code Playgroud)
myapp.js
$('#myid').on('click', function(){
$.ajax({
type: "GET",
url: GET_DATA,
data: dataString,
success: function(res) {
$('#addl_container').html(
"<div>All Details Here, 1. "+ res.id +", 2. "+ res.name + "</div>"
);
}
});
});
Run Code Online (Sandbox Code Playgroud)
这两个过程都有效.我认为事先创建html并加载它可能不是一个好选择,因为我们使用python代码创建html然后加载它.如果我尝试从不同的应用程序访问相同的URL,它也将工作.通过从json响应中提取数据从jquery创建html似乎是一个很好的解决方案,但有时当数据很大时,在用户端需要更多ram,这会使系统变慢. …
我在字符串中有一个代数表达式。我想从表达式中提取变量名。变量名应遵循python变量命名规则。(应该是字母或数字的组合,不应以数字开头,可以有下划线等)
例子:
formula = 'value1 * 5 + value_2 /4'
Run Code Online (Sandbox Code Playgroud)
它应该给出一个结果 ['value1', 'value_2']