我正在设计 Android 软件,我必须监听 n 个端口,比如说 10 个。每 100 毫秒我想检查一下端口是否有新的 UDP 数据包。收到数据包后,将里面的数据传递给UI线程。
我的问题是我应该使用一个线程从所有不同的端口接收数据还是应该为每个端口创建自己的线程,每个线程以 100 毫秒的间隔运行?在这些情况下,好的做法是什么?
当端口有数据时,它会被反序列化为一个对象,然后用于更新 UI 线程中 View 中的数据。
我对套接字编程和更高级的并发编程很陌生,所以我一直在犹豫这个问题,但没有从网上找到任何好的答案。
最佳答案
每个套接字都有一个线程似乎有些过大,除非反序列化对象的时间过多,否则您不会看到任何好处。
就我个人而言(就像 bas 指出的那样;其中没有太多内容),我会从简单开始,让一个线程循环检查 10 个端口,并在检查之间 hibernate 。如果您开始发现线程处理数据花费了太多时间,并且检查每个端口之间的时间太长,那么您可以在此时向池中添加更多线程。
关于java - 多个端口和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969992/