如何实现用 pubsub 接收多个线程的数据?

需求
2个采集线程, 1个展示线程, 这个展示线程如何接收2个采集线程的数据,分开存储,分开显示

给个示范代码, 采集线程 1秒发一次数据, 展示线程 10秒展示一次数据。

from threading import Thread
from time import sleep
from random import randint
from pubsub import pub
import time
import pymysql

class Thread1(Thread):
    def __init__(self):
        """Init Worker Thread Class."""
        Thread.__init__(self)
        print('采集线程1  Start ')

    def run(self):
        """Run Worker Thread."""
        i = 0
        while True:
            i += 1
            pub.sendMessage('setval', status_val=['t1',randint(1,100)])
            sleep(1)

class Thread2(Thread):
    def __init__(self):
        """Init Worker Thread Class."""
        Thread.__init__(self)
        print('采集线程1  Start ')

    def run(self):
        """Run Worker Thread."""
        i = 0
        while True:
            i += 1
            pub.sendMessage('setval', status_val=['t2',randint(200,500)])
            sleep(1)


class Thread_fx(Thread):
    def __init__(self):
        Thread.__init__(self)
        print('分析线程  Start ')
        self.data = []
        self.data_dict = {}
        self.data_stand_dict = {}
        self.stand = 0
        pub.subscribe(self.change_status, 'setval')

    def change_status(self, status_val):
        item = status_val
        if item[0] in self.data_dict:
            temp = self.data_dict[item[0]]
            temp.append(item[1])
        else:
            self.data_dict[item[0]] = [item[1]]

        self.data.append(status_val)


    def run(self):

        while True:
            for k,v in self.data_dict.items():
                print("线程",k,"有{}条数据,最后一条:".format(len(v)),v[-1])
            sleep(10)



def test():
    print('start test')
    t1 = Thread1()
    t1.start()
    t2 = Thread2()
    t2.start()

    fx = Thread_fx()
    fx.start()




if __name__ == '__main__':
    test()