Gun*_*ram 2 java static multithreading
我正在研究TCP套接字.我从Thread派生我的服务器类.
public class TCPServer extends Thread {
public static int SERVERPORT = 54321;
....
<code>
}
Run Code Online (Sandbox Code Playgroud)
当我使用这个类时,它会打开几个线程.我的问题是,每个线程都有自己的静态变量SERVERPORT吗?因为看起来我编辑这个变量,它在其他变量中没有效果.
我对这个问题的解决方案是创建另一个类,比如说"GlobalVariables"并给它这个类访问它.
我的问题是,每个线程都有自己的静态变量SERVERPORT吗?
不,不是的.该变量由进程中的所有线程共享.
我错过了删除
final:D我拥有的变量是类型static boolean
即使变量是共享的,当您在一个线程中修改它时,更改也不一定会被其他线程看到,直到稍后的未指定时间.
您需要采取措施确保可见性.根据您的代码执行的操作,这可能包括:
volatile boolean;AtomicBoolean.