需求是,管理现实中的设备。设备与服务平台使用tcp协议连接。服务端使用nio
用netty框架实现。 现在帮助测试人员,用python开发工具来模拟终端。
要求是尽快的模拟真实情况:
真实情况是,终端有各种业务场景来发送数据。同时,服务器也会对终端下发数据。
终端接收到下发的数据,会做出相应的操作。
1.使用python3.5来做开发
2.socket模块实现tcp,pymysql连接数据库,xlrd分析excel配制等
有疑惑的地方:
1.使用面向对象的方式,设备对应一个对象,这个对象生成以后,有两个线程来执行,一个
线程执行发的逻辑,一个线程执行接受的逻辑。
2.使用threading来实现多线程
问题是,这种模拟方式是否靠谱?还有什么更好的方案吗?斜体文字
最好不要用多线程来实现并发,而是用
1select
或
1gevent
,参考 Python 文档 Socket Programming HOWTO 和 gevent tutorial。
python多线程是个坑,由于GIL的存在,所以多线程的效率还不一定比单线程好呢。同楼上建议采用一些基于协程开发
的网络库