最近和NASA合作关于realtime java和Java path founder的项目。他们在考虑把java搞到下一代导弹上面。当然不是普通的java,不过也差不多哇。这几天我要做的是实现一种线程的模拟,具体是用一种叫做DES discrete event simulation的东西来模拟。
DES模拟是把线程模拟成event,这个event包含至少2个因素:1)thread itself 2)线程必须被触发的时间 (比如说几分几秒一定要把导弹推进器卸载掉一个)上面是背景;
下面是问题:我可以把event按照某一种方法分类 成为若干eventList 比如eventList1 eventList2然后我想把每个eventList绑定到或者虚拟绑定到某一个CPU,让CPU1只执行eventList1 而从不执行eventList2里面的东西event 可以看成是一个thread请问到底有没有什么好办法? 当然我知道所有的thread都是application 级别的封装我不想改太多的代码 所以如果谁有什么好办法 那就太好了哇 谢谢啊 谢谢谢谢再谢谢
DES模拟是把线程模拟成event,这个event包含至少2个因素:1)thread itself 2)线程必须被触发的时间 (比如说几分几秒一定要把导弹推进器卸载掉一个)上面是背景;
下面是问题:我可以把event按照某一种方法分类 成为若干eventList 比如eventList1 eventList2然后我想把每个eventList绑定到或者虚拟绑定到某一个CPU,让CPU1只执行eventList1 而从不执行eventList2里面的东西event 可以看成是一个thread请问到底有没有什么好办法? 当然我知道所有的thread都是application 级别的封装我不想改太多的代码 所以如果谁有什么好办法 那就太好了哇 谢谢啊 谢谢谢谢再谢谢
我不得不佩服lz啊
估计需要JVM的改进,除了能识别多CPU系统的各个CPU,还要让不同的CPU能分别处理不同的内存段
就算是采用标识互斥机制,也需要获得相应的硬件信息,目前的java可能有点难度,再想想看有什么变相的方法
楼主厉害
一个,关注更新
还是这些都重新做了精简?........
其次操作系统的线程调度机制也是非确定性的;不过楼主的问题中说要隔离执行,可以建立两个SingleThreadExecutor,一个用来执行eventList1中的任务,一个用来执行eventList2中的任务,而且互不相干,每个SingleThreadExecutor中的任务一个接一个的执行完成,这样是否模拟出来像似一个CPU执行一个任务列表;