Python多线程具体运用的方法

开发 后端
我们在这篇文章中为大家主要讲解的是有关PYthon多线程的一些基本概念,相信对于初学者来说,可以从这里介绍的内容充分的掌握这些知识。

Python编程语言是一种功能强大的面向对象计算机通用型语言。那么今天我们就可以先从Python多线程的具体应用开始了解,从而进一步的对这一编程语言有一个深刻的认识,以帮助我们在实际中的应用。

为了利用多核处理器,看过很多文档,研究很多python相关技术,全部是失望的。

1、Python:受限于GIL,被锁住只能用一个CPU核心。

2、Twisted:其实只有一个线程,何谈多核的利用。

3、Stackless:测试表明其多线程程序的速度比Python多线程使用的native线程方式要快一点,不过一样没法用多核。

4、parallel Python:多进程方式,感觉封装的很龌龊,虽然翻译完了文档,但是仍然没有兴趣去使用。

现在的办法:

1、负载均衡:后面在多台服务器上启动多个Python程序。现在我开发的应用基本上都是用twistd启动的daemon程序。#t#

2、C/S应用:各个进程间用多进程通信。

3、subprocess:使用这个模块,利用外部进程作worker,异步等待结果。

从这些解决方法之后,倒是感觉Python作为胶水语言其实多核利用也不是很必要。

pyprocessing 测试过没?这个模块将会被加入到python2.6中。
  
我用pyprocessing改造了Karrigell,性能获得了很大提升。

在Quixote官方白皮书中已经详细描述了Quixote的工作模式。Quixote可以使用Python自代的http_server(主要用于开发调试)和与Apache(或lighttpd)配合使用。

Quixote与Apache配合使用方式如下:

使用CGI,文档中称为egular CGI。被认为效率***的一种方式,因为每一个请求都会创建一个新的进程。

使用fastCGI,CGI可以运行fastCGI一定是可以应用的。这也是豆瓣采用的方式。在Quixote作者的一个PPT中,他认为fastCGI是buggy的。哦:(也不至于啊。我们正在寻找使用fastCGI的部署经验。

使用mod_python,将python代码嵌入到Apache中。

使 用SCGI,这是作者推荐的。使用Apache SCGI module scgi_mod将遵循SCGI协议Apache将请求发送到相应的Socket如localhost:3001。而这个Socket由本地运行的一个 Python程序打开。这个Python多线程将处理请求,并返回结果。

责任编辑:佚名 来源: 驱动之家
相关推荐

2010-03-15 18:18:33

Java多线程

2010-03-24 10:32:05

Python多线程

2010-03-15 19:37:00

Java多线程同步

2010-03-15 19:11:39

Java多线程语句

2010-03-18 16:02:09

python 多线程

2009-06-29 18:08:51

Java多线程join方法

2010-04-14 09:20:26

.NET多线程

2010-02-01 17:25:09

Python多线程

2023-10-06 23:06:01

多线程Python

2010-03-10 08:54:49

Python多线程

2010-03-16 09:19:22

Java多线程

2009-04-27 13:15:04

多线程方法run()

2015-09-10 09:30:54

Java多线程同步

2009-06-29 18:22:54

Java多线程从线程返回数据

2010-03-10 19:25:04

python多线程

2021-06-10 00:13:43

C#队列数据

2021-03-26 05:54:00

C#数据方法

2010-02-01 17:18:23

Python多线程环境

2021-08-12 14:33:20

Python多线程编程

2011-08-31 16:30:19

Lua多线程
点赞
收藏

51CTO技术栈公众号