小编jte*_*y14的帖子

Python服务器程序具有较高的CPU使用率

我正在尝试使用python tcp服务器(我刚刚发现了令人敬畏的python).无论如何,服务器运行得很好并按照我期望的方式打印数据,但是当我查看Windows任务管理器中的CPU使用情况时,它显示python.exe消耗了97%-99%的CPU.

只是为了看看会发生什么,我在另一台计算机上再次运行它,它只使用了大约50%的CPU.

这是我想知道的:

  1. 为什么CPU使用率如此之高?

  2. 为什么我会在两台不同的机器上看到差异(一台是Windows 7,另一台是服务器2008,可能重要)?

  3. 我正在为每个连接创建一个新线程,并运行一个始终为true的while循环,但是当不再有连接时我有一个"中断".这个线程被正确销毁了吗?

在此先感谢您的帮助!

import socket
import threading
import logging
import time

TCP_IP = "127.0.0.1"
TCP_PORT = 10000
BUFFER_SIZE = 1024
SOCKET_TIMEOUT = 2


def handler(conn):
    while 1:
        try:
            data = conn.recv(BUFFER_SIZE)
            if data:
                dataS = data.decode(encoding = 'UTF-8')
                print ("received data: ")
                print (dataS)
                logging.getLogger("TestLogger").critical(dataS)

        except socket.error as e:
            print("connection closed")
            conn.close()
            break

try:    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((TCP_IP, TCP_PORT))
    s.setblocking(0)
    s.listen(5)

except Exception as e:
    print(e)


while 1:
    try:
        conn, addr = s.accept() …
Run Code Online (Sandbox Code Playgroud)

python multithreading tcp

6
推荐指数
1
解决办法
3093
查看次数

标签 统计

multithreading ×1

python ×1

tcp ×1