【发布时间】:2011-04-03 22:57:55
【问题描述】:
我有多个文件和类。简而言之,一个人将计算一个粒子的位置,而另一个类移动粒子。我遇到的问题是在第一堂课完成计算之前粒子正在移动。我尝试使两种方法同步,但这似乎没有什么不同,是因为它们在不同的类中吗?最好的方法是什么?
编辑:我根本没有使用线程,它似乎在并行运行多个方法。
编辑 2:这是我的代码大纲
MovingParticle.java
public int x, y;
public void shootParticle(){
//move particle and change x, y values
//this method is called by a timer
}
public void drawParticle(){
//draws the particle
}
第二个文件
AllOtherParticles.java
public void checkIfTheyCollide(){
for(run through arrayList){
//check if it collides with each point in array
}
public void drawCluster(){
//draws the cluster
}
【问题讨论】:
-
同步(TheParticle){ ... }
-
埃里克,这应该是一个答案,所以我可以投票:-)
-
你的代码有bug,把代码贴出来。
-
单个线程上的所有 java 调用都是同步的,即按顺序执行。同步锁适用于多个线程。所以唯一合乎逻辑的结论是你的代码有错误。
-
啊……计时器在不同的线程上运行。阅读文档。一般来说,尽可能避免使用多个线程,这要困难得多。您可以让一个线程执行 Thread.sleep(time) 作为替代方案。
标签: java methods synchronized