• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
MKT-porter
博客园    首页    新随笔    联系   管理    订阅  订阅
python队列进程传输数据
# -*- coding: utf-8 -*-

#activate py37_tfgpu1131_keras215_opencv341


import time 
import json
import multiprocessing as mp


#=======================发送进程获取数据处理================
def Client2PaySever_thread(q_send):


    cout=0
    while True:
        
    
        time.sleep(1)


        #如果有消息发送 数据格式 数目-车位1,车位2,车位3,。。。。。
        if q_send.qsize()>0:
            car_statelist=q_send.get()
            print("========================")
            for i in car_statelist:
                print(i)
        else:
            print("数据尚未更新")
            #加个判断  超过一定时间一直没有数据,可能设备出问题了,需要检修,主动上报服务器数据清0且状态异常
            continue







#========================模拟主进程产生数据===============
def Test():

 

    q_send=mp.Queue(maxsize=2)#队列用来检测进程结果传输给发送进程
    


    client2PayserverThread = mp.Process(target=Client2PaySever_thread,args=(q_send,))
    client2PayserverThread.daemon = True
    client2PayserverThread.start()
    print('---发送进程开启---')

    
    #模拟设备检测到的数据 修改传送发射端
    cout=0
    while True:
        
        
        car_stateList=[]
        for i in range(0,10):
            car_state=[i,"A0001","192.168.1."+str(i),0,3]   
            car_stateList.append(car_state)

        if q_send.qsize()==2:
            q_send.get()
        q_send.put(car_stateList)
       
        cout=cout+1
        time.sleep(3)
        print(cout,'---client  main---')

if __name__ == '__main__':

    Test()

  

posted on 2021-10-15 21:07  MKT-porter  阅读(131)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3