我有这种配对机制的想法,通过它们的 ThreadID 来识别客户端。当线程被销毁时,客户端的配对也被销毁,其 ID 设置为 -1。
现在,为了让我获得线程 ID,线程当然必须已经运行或启动。
我想知道我是否可以创建一个线程,获取 ID,然后稍后设置可运行对象,或者我是否可以获取正在运行我的函数的当前线程的 ID。
我想做的例子:
void createClientThreaded(final Client client) {
new Thread(new Runnable() {
@Override public void run() {
while(!client.stop()) {
Utils.sleep(1000);
//Do other stuff here..
client.setThreadID(/* This Thread's ID */);
// Do other stuff here..
}
}
});
}
关于如何做到这一点的任何想法?线程 ID 是每个进程唯一的还是整个系统唯一的?也就是说,两个同时运行的jar文件可以有相同的Thread ID吗?