讨论:Java到底有没有办法把thread绑定CPU或者虚拟绑定CPU运行?

一头头 2011-05-30 12:09:43
最近和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 级别的封装

我不想改太多的代码 所以如果谁有什么好办法 那就太好了哇 谢谢啊

谢谢谢谢再谢谢
...全文
429 26 打赏 收藏 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
一头头 2011-06-20
  • 打赏
  • 举报
回复
其实 我现在的方法是这样的。

1. 在每个realtime thread中增加一个属性 processor 虚拟绑定某一个processor。这个虚拟的意思就是说,感觉这个thread每次执行都在某一个固定的processor上。但其实不是,只是一种simulation。

2. eventList中pop每一个event的时候,advance processor time,设成这个event的schedulingTime。这样一来,对所有的thread来说,他们只能看见他们自己的那个processor,从时间的角度。

In short, this approach is called distributed discrete event simulation using multiple event lists.

基本就这样 汗 献丑了。。。
lgh1117 2011-06-05
  • 打赏
  • 举报
回复
路过,顶。。。雾蒙蒙一片
lxbccsu 2011-06-05
  • 打赏
  • 举报
回复
个人了解是Java中线程的一大好处就是不用知道运行在一个还是多个CPU上,建立了一种透明的编程方法;
其次操作系统的线程调度机制也是非确定性的;

不过楼主的问题中说要隔离执行,可以建立两个SingleThreadExecutor,一个用来执行eventList1中的任务,一个用来执行eventList2中的任务,而且互不相干,每个SingleThreadExecutor中的任务一个接一个的执行完成,这样是否模拟出来像似一个CPU执行一个任务列表;
zhuyongjun 2011-06-03
  • 打赏
  • 举报
回复
太深奥了,完全不懂
AA19900 2011-06-03
  • 打赏
  • 举报
回复
mark
beowulf2005 2011-06-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ticmy 的回复:]

如果jvm使用Green Thread Model,那么就是由jvm自己来调度线程,而不是将java线程对应到操作系统线程,这种模型下,对于操作系统来说,只有一个线程,而对于java应用来说,则有多个线程,就根本没法控制的
[/Quote]
错,Green Thread Model一般会产生是两个操作系统线程。
UPC_思念 2011-06-03
  • 打赏
  • 举报
回复
up
有点深奥。。。
manyroads 2011-06-03
  • 打赏
  • 举报
回复
java 嵌C 嵌汇编 啊啊啊
healer_kx 2011-06-03
  • 打赏
  • 举报
回复
这个根本就不是语言层面的问题,而是硬件和OS的问题。

kokobox 2011-06-03
  • 打赏
  • 举报
回复
到底是怎么一个场景呢? 有点想象不出来呢
mayanyun1986 2011-06-03
  • 打赏
  • 举报
回复
初次见这种问题,建议拜访java之父
aotian16 2011-05-30
  • 打赏
  • 举报
回复
好深奥啊
不过, 个人觉得, 既然你要控制时间, 为什么不让它顺序执行呢?
一头头 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ticmy 的回复:]

现在通用的java肯定做不到
[/Quote]

我在看别人的论文 我也不知道可以不可以 但是我有个感觉是用某种奇妙的互斥机制或许可以模拟实现

我还需要多想想 或许根本就是瞎想
龙四 2011-05-30
  • 打赏
  • 举报
回复
现在通用的java肯定做不到
  • 打赏
  • 举报
回复
java 最初就是应用在 NASA 的项目上的。
wula0010 2011-05-30
  • 打赏
  • 举报
回复
楼主和NASA合作合作,好厉害,不过把java安装到导弹里面,那么导弹里就得存jre,要多少空间啊,再跑个jvm,要多少内存,......
还是这些都重新做了精简?........
安心逍遥 2011-05-30
  • 打赏
  • 举报
回复
呃,不懂。感觉很深奥啊。帮顶了
jiazimo 2011-05-30
  • 打赏
  • 举报
回复
NASA
帮顶
daf380 2011-05-30
  • 打赏
  • 举报
回复
观而不语
rmouse_2005 2011-05-30
  • 打赏
  • 举报
回复
NASA
楼主厉害
mark一个,关注更新
加载更多回复(6)
内容概要:本文介绍了基于Matlab代码实现的电力系统机组组合优化调度方法,适用于IEEE14、IEEE30和IEEE118节点标准测试系统。该资源聚焦于电力系统中发电机组的优化调度问题,通过智能优化算法实现对机组启停、出力分配等决策的最优化,旨在降低运行成本、提升系统可靠性和经济性。文中系统阐述了从数学模型构建、多类型约束处理到优化算法设计与仿真实验验证的完整研究流程,并提供了可复现的Matlab代码,涵盖目标函数设定、约束条件建模及算法求解过程,适用于电力系统调度、能源优化等相关领域的科研与教学实践。; 适合人群:具备电力系统分析、运筹学基础及Matlab编程能力的高校学生、科研人员和工程技术人员,尤其适合从事电力系统优化、智能算法应用研究的研究生与青年学者。; 使用场景及目标:①用于电力系统机组组合(UC)问题的教学实验与课程设计;②支撑科研工作中对遗传算法、粒子群算法等智能优化算法在电力系统调度中应用的研究;③为含可再生能源接入的现代电网调度提供仿真平台与技术参考,助力低碳电力系统规划与运行。; 阅读建议:建议读者结合电力系统调度理论与优化建模知识,深入理解机组组合问题的数学本质与物理约束,再通过Matlab代码进行仿真实践,重点关注算法收敛性、多目标权衡策略与不同测试系统间的性能对比,以实现理论与实践的深度融合。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧