该代码是一个线程管理类TM,用于管理线程池和处理设备数据。

首先,在TM的构造函数中,初始化了一个大小为THREAD_SIZE_MAX的线程池,每个线程都是MT类型的。

接下来,有一个onData方法,用于接收设备数据。该方法接收两个参数,一个是移动站设备ID moveId,另一个是移动站设备一帧数据dataProto。

在onData方法中,首先通过moveId从cdsMap中获取CDS对象。如果cdsMap中不存在该moveId对应的CDS对象,则创建一个新的CDS对象,并将其放入cdsMap中。

然后,将dataProto设置到cds对象中。

接下来,通过getGoodMt方法从线程池中获取最佳线程MT。最佳线程的选择是根据各个线程的使用率来决定的,使用率越低的线程被认为是最佳线程。如果找到最佳线程,则将cds添加到该线程的队列中。

最后,如果找不到最佳线程(即所有线程的队列都满了),则打印日志提示线程池已满。

getGoodMt方法用于获取最佳线程。遍历线程池中的所有线程,找到使用率最低的线程,即使用率为0的线程。如果存在使用率为0的线程,则直接返回该线程;否则,返回使用率最低的线程。如果找不到最佳线程(即所有线程的使用率都为1),则返回null。

总的来说,TM类用于管理线程池和处理设备数据。它通过将设备数据分配给线程池中的最佳线程来实现并行处理。并且,通过动态调整线程的使用率,可以实现线程的均衡分配

ThreadManager 线程管理 public class TM public TM for int i = 0; i THREAD_SIZE_MAX; i++ MT mt = new MT; mtsi = mt; CPU核数 private static final int CPU_SI

原文地址: http://www.cveoy.top/t/topic/izJf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录