नहीं आसानी से दोनों पर एक नमस्ते विश्व वेबपेज प्राप्त करने में सक्षम हो जाएगा। आपके पास दो थ्रेडिंग एचटीटीपीएस सर्वर उदाहरण हो सकते हैं, अपना स्वयं का Serv_forever() फ़ंक्शन लिखें (चिंता न करें यह एक जटिल कार्य नहीं है)।
मौजूदा समारोह:
def serve_forever(self, poll_interval=0.5):
"""Handle one request at a time until shutdown.
Polls for shutdown every poll_interval seconds. Ignores
self.timeout. If you need to do periodic tasks, do them in
another thread.
"""
self.__serving = True
self.__is_shut_down.clear()
while self.__serving:
# XXX: Consider using another file descriptor or
# connecting to the socket to wake this up instead of
# polling. Polling reduces our responsiveness to a
# shutdown request and wastes cpu at all other times.
r, w, e = select.select([self], [], [], poll_interval)
if r:
self._handle_request_noblock()
self.__is_shut_down.set()
इसलिए हमारे प्रतिस्थापन होगा कुछ की तरह:
def serve_forever(server1,server2):
while True:
r,w,e = select.select([server1,server2],[],[],0)
if server1 in r:
server1.handle_request()
if server2 in r:
server2.handle_request()
स्रोत
2008-09-13 18:23:10
क्या यह जीआईएल के साथ ठीक है? – sashab
@scrat: जीआईएल इस कोड के लिए ज्यादा मायने रखता नहीं है, क्योंकि यह कोड अधिकतर I/o बाध्य होगा, और पायथन में अधिकांश I/O निम्न स्तर के सी पुस्तकालयों का उपयोग करके लिखा जाता है जो जीआईएल जारी करते हैं। अधिकांश प्रदर्शन प्रश्नों के साथ, मेरी सलाह है कि आप इसके बारे में चिंता न करें जबतक कि आपने अपना कोड बेंचमार्क नहीं किया है और यह निर्धारित किया है कि यह वास्तव में एक समस्या है। मानक पुस्तकालय में चिपकने के लिए –
+1 :) –