我的程序中有以下代码:
Thread getUsersist, getChatUsers;
getUsersList = new Thread(this, "getOnlineUsers");
getUsersList.start();
getChatUsers = new Thread(this, "getChatUsers");
getChatUsers.start();
在run()中,我想知道哪个线程正在使用run()。如果它的“getOnlineUsers”我会做一些事情,如果它是“getChatUsers”我将做其他事情。那么我怎么知道哪个线程正在使用run()?
答案 0 :(得分:10)
在run()
中,您可以执行以下操作:
Thread.currentThread().getName()
获取“getOnlineUsers”或“getChatUsers”并相应地采用不同的代码路径。也就是说,对我来说,这似乎是一个相当脆弱的设计,我想你会为每个线程分别提供更好的课程。
答案 1 :(得分:3)
if (getName().equals("getOnlineUsers")) {
doOneThing();
else if (getName().equals("getChatUsers")) {
doAnotherThing();
} else {
throw Up();
}
编辑:忽略这个答案。阅读接受的答案。