如何让两个线程中的循环一起运行?

时间:2015-06-28 18:05:20

标签: java multithreading

我正在制作一个使用套接字的炸弹人。有两个线程,都有循环。一个是游戏,一个是游戏的客户端部分,它从服务器发送和接收信息。我需要在客户端部分的迭代结束时(它已经读取并发送所需的全部内容),它等待游戏循环的迭代结束。然后他们会在同一时间开始,等等。

有没有办法做到这一点?先谢谢你。

1 个答案:

答案 0 :(得分:0)

我不确定我是否100%理解您的问题,但只是提出一些建议,synchronized(){}可能有所帮助。让我们说你的一个线程想要运行另一个,你有类似的东西

Class2 class2=new Class2();

当你运行第一个帖子时,你有类似的东西:

Class1 class1=new Class1();

然后你可以在第一课时,在循环之前(有点混乱):

//this tells class2 to wait
 synchronized(class2){
      class2.wait;
 }

和第2课:

 synchronized(class1){
      class1.wait;
 }

然后回到class1:

//this tells class2 to stop the wait FOR CLASS1, SO IT TELLS CLASS1 TO START
 synchronized(class2){
      class2.notify;
 }

和class2:

//this tells class1 to stop the wait FOR CLASS2, SO IT TELLS CLASS2 TO START
 synchronized(class1){
      class1.notify;
 }

你会以:

结束
//this tells class2 to wait
 synchronized(class2){
      class2.wait;
 }
//this tells class2 to stop the wait FOR CLASS1, SO IT TELLS CLASS1 TO START
 synchronized(class2){
      class2.notify;
 }
在class1中

 synchronized(class1){
      class1.wait;
 }
//this tells class1 to stop the wait FOR CLASS2, SO IT TELLS CLASS2 TO START
 synchronized(class1){
      class1.notify;
 }

中的

希望我帮助你,有点混乱。祝你今天愉快。这应该使两个循环一起开始,就像其他等待和启动一样,一起做,使用synchronized(){}和class.wait和class.notify,你应该能够找出其余的