背景:界面数据显示的是每个peer的相关信息,例如basic information以及key value对。每个peer的数据保存在一 hashmap中。通过peerID来查询相应的information。
问题:如果将获取的信息动态的显示到界面。
方案一:将获取数据的后台线程进行修改,每次后台线程试图修改hashmap中每个peer对应的信息的时候,即启动一个修改界面显示的线程,然后修改hashmap的值(这两步没有顺序问题)。 觉得对这个方案而言,hashmap成了一个多余的额外的东西,整个程序的逻辑是:从客户端获取数据,然后启动线程修改界面。问题1,如果多个线程同时修改界面,界面响应的问题,最好是能将这些事件一个一个交付给界面,而不是一股脑交给界面。二,如果要对获取的信息进行其他扩展,显然,起点是hashmap。
方案二:将后台获取的界面线程保存到hashmap中,然后对hashmap进行监听,任何对hashmap的修改都会反映到hashmapChange 事件中(事件源是hashmap)。