2014-01-08 14 views
0

Я хотел бы использовать любой из 3 упомянутых неблокирующих серверов на сервере AWS Linux с 8 ядрами. В какой-либо документации неясно, реализуется ли SMP под обложками в соответствующем helloworld или любых других примерах.Извилистый, циклон или торнадо делают SMP многоядерным из коробки

Например, этот циклон helloworld ничего не говорит о ядрах или SMP или потоках на ядро.

import cyclone.web 

class MainHandler(cyclone.web.RequestHandler): 
    def get(self): 
     self.write("Hello, world") 


class Application(cyclone.web.Application): 
    def __init__(self): 
     cyclone.web.Application.__init__(self, [(r"/", MainHandler)], 
             xheaders=False) 

Или это Twisted один:

from twisted.web import server, resource 
from twisted.internet import reactor 
class HelloResource(resource.Resource): 
    isLeaf = True 
    numberRequests = 0 

    def render_GET(self, request): 
     self.numberRequests += 1 
     request.setHeader("content-type", "text/plain") 
     return "I am request #" + str(self.numberRequests) + "\n" 

reactor.listenTCP(8080, server.Site(HelloResource())) 
reactor.run() 

Или смерч ...

import tornado.ioloop 
import tornado.web 

class MainHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.write("Hello, world") 

application = tornado.web.Application([ 
    (r"/", MainHandler), 
]) 
if __name__ == "__main__": 
    application.listen(8888) 
    tornado.ioloop.IOLoop.instance().start() 

В самом деле, его трудно определить те ли неблокирующая или нет.

+1

https://stackoverflow.com/questions/10077745/twistedweb-on-multicore-multiprocessor связан. –

ответ

1

HTTPServer Tornado поддерживает многопроцессорный режим, используя методы bind(port) и start(num_procs).
http://www.tornadoweb.org/en/stable/tcpserver.html#tornado.tcpserver.TCPServer.start

+0

автоматически. «Если num_processes - None или <= 0, мы обнаруживаем количество ядер, доступных на этом компьютере, и fork это количество дочерних процессов». –

+0

Да, но обратите внимание, что значение по умолчанию для num_processes равно 1. Приложения должны выбрать режим мультипроцесса. –

+0

проклятье. просто заметил небольшой отпечаток. Thnx –

0

Процесс CPython использует глобальную блокировку интерпретатора и, следовательно, не может воспользоваться реальным преимуществом нескольких потоков, доступных на аппаратном обеспечении, если выполняется только один процесс Python.

+0

Вот почему некоторые, если не все, fork обрабатывают либо неявно, либо нужно явно добавить его. –