gpt4 book ai didi

java - 这有什么意义呢?

转载 作者:行者123 更新时间:2023-12-02 04:28:07 24 4
gpt4 key购买 nike

今天我发现了一个非常有趣的问题。基本上,如果删除 System.out.println,此代码将不起作用。如果没有它,它永远不会进入 if ! (线程从主类启动)

import java.util.LinkedList;
import java.util.Vector;
import java.util.Queue;



public class Matchmaking extends Thread{
public static Vector onlinePlayers = new Vector();
public static Queue<Player> queuedPlayers = new LinkedList<Player>();


@Override
public void run() {
while(true){
System.out.println(queuedPlayers.size());
if(queuedPlayers.size() >= 2){
new Matchmaking_GameFoundThreads(queuedPlayers.remove(),queuedPlayers.remove());
}
}
}
}

最佳答案

LinkedList 不同步。

一个线程中对其进行的更改可能在另一个线程中不可见。尝试使用:

public static List<Player> queuedPlayers = 
Collections.synchronizedList( new LinkedList<Player>() );

关于java - 这有什么意义呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31887938/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com