python两个子线程通过queue通信

简介: 版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.
版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/78864046

SocketServer端代码

#!/usr/bin/env python

import threading
import SocketServer
import time
import queue

q = queue.Queue()


class MyHandler(SocketServer.BaseRequestHandler):
    def handle(self):
        while True:
            data = self.request.recv(1024)
            # print data,self.client_address
            q.put(data)
            self.request.send(' %s %s ' % (data, time.ctime()))
            if data == 'exit':
                break


class SocketServer_Thread(threading.Thread, MyHandler):
    def __init__(self, Host, Port):
        super(SocketServer_Thread, self).__init__()
        self.host = Host
        self.port = Port

    def run(self):
        s = SocketServer.ThreadingTCPServer((self.host, self.port), MyHandler)
        s.serve_forever()


def run_socketserver(Host, Port):
    ss_thread = SocketServer_Thread(Host, Port)
    ss_thread.start()


class Message_Thread(threading.Thread):
    def run(self):
        while True:
            if not q.empty():
                message = q.get()
                print message


def run_messageoutput():
    mo_thread = Message_Thread()
    mo_thread.start()


if __name__ == "__main__":
    Host = '0.0.0.0'
    Port = 9999
    run_socketserver(Host, Port)
    run_messageoutput()

client端代码

#!/usr/bin/env python

import socket

HOST = '10.9.3.132'
PORT = 9999

s = socket.socket()
s.connect((HOST, PORT))
while True:
    kel = raw_input('>>>')
    s.sendall(kel)
    print s.recv(1024)
    if kel == 'exit':
        break
s.close()





目录
相关文章
|
4月前
|
存储 Python
Python中的多进程通信实践指南
Python中的多进程通信实践指南
51 0
|
6月前
|
消息中间件 存储 安全
python多进程并发编程之互斥锁与进程间的通信
python多进程并发编程之互斥锁与进程间的通信
|
6月前
|
数据采集 存储 安全
如何确保Python Queue的线程和进程安全性:使用锁的技巧
本文探讨了在Python爬虫技术中使用锁来保障Queue(队列)的线程和进程安全性。通过分析`queue.Queue`及`multiprocessing.Queue`的基本线程与进程安全特性,文章指出在特定场景下使用锁的重要性。文中还提供了一个综合示例,该示例利用亿牛云爬虫代理服务、多线程技术和锁机制,实现了高效且安全的网页数据采集流程。示例涵盖了代理IP、User-Agent和Cookie的设置,以及如何使用BeautifulSoup解析HTML内容并将其保存为文档。通过这种方式,不仅提高了数据采集效率,还有效避免了并发环境下的数据竞争问题。
101 1
如何确保Python Queue的线程和进程安全性:使用锁的技巧
|
6月前
|
Python
【python】】Python 的 queue 模块使用笔记
【python】】Python 的 queue 模块使用笔记
69 0
|
6月前
|
网络协议 安全 Unix
6! 用Python脚本演示TCP 服务器与客户端通信过程!
6! 用Python脚本演示TCP 服务器与客户端通信过程!
112 1
|
6月前
|
存储 网络协议 Python
Python如何用PyModbus库进行Modbus TCP通信
使用python解决工业通信问题是一个非常好的选择,python具有丰富的生态,可以轻松解决工业通信的各种问题。 本篇主要介绍使用pymodbus库进行modbus tcp仿真,实现pc端读取plc或工业设备modbus变量。
|
6月前
|
Python
python socket 简单通信
python socket 简单通信
65 1
|
6月前
|
Python
Python IPC深度探索:解锁跨进程通信的无限可能,以管道与队列为翼,让你的应用跨越边界,无缝协作,震撼登场
【8月更文挑战第3天】Python IPC大揭秘:解锁进程间通信新姿势,让你的应用无界连接
38 0
|
6月前
|
数据可视化 算法 Python
【数字通信革命】深入剖析Python实现BPSK、QPSK到QAM信号调制的奥秘,解锁高速数据传输的密钥!
【8月更文挑战第2天】在通信系统中,信号调制至关重要,它将信息嵌入载波信号中以便传输。本文通过Python实现三种基本调制技术:BPSK、QPSK和16-QAM,并提供示例代码。首先需安装NumPy、SciPy和Matplotlib库。BPSK是最简单的相位调制,每个符号携带一位信息;QPSK则每个符号携带两位信息,通过四种相位表示;16-QAM结合幅度和相位调制,每个符号携带更多比特信息。本文提供的代码演示了这些调制方式的实现过程,并利用Matplotlib可视化结果。了解这些调制技术有助于深入探索信号处理领域。
252 18
|
7月前
|
数据采集 Python
Python多进程:如何在不依赖Queue的情况下传递结果
本文探讨了在Python中使用多进程技术采集抖音短视频数据时,如何在不依赖队列(Queue)的情况下传递结果。文章首先介绍了多进程提高数据采集效率的背景,然后指出了队列在处理大量数据时可能成为性能瓶颈,并增加了系统复杂性。作为解决方案,提出了使用管道、共享内存和临时文件等替代方法。文章通过一个实战案例,详细演示了如何配置爬虫代理、设置请求头、实现定时器装饰器、抓取视频数据以及通过管道在子进程间传递结果。最后,文章总结了使用这些替代方案可以有效提高数据采集的效率和可靠性。
Python多进程:如何在不依赖Queue的情况下传递结果

热门文章

最新文章

推荐镜像

更多