如何区分两个线程

时间:2010-04-05 10:00:56

标签: java multithreading

我的程序中有以下代码:

Thread getUsersist, getChatUsers;

getUsersList = new Thread(this, "getOnlineUsers");
getUsersList.start();
getChatUsers = new Thread(this, "getChatUsers");
getChatUsers.start();

在run()中,我想知道哪个线程正在使用run()。如果它的“getOnlineUsers”我会做一些事情,如果它是“getChatUsers”我将做其他事情。那么我怎么知道哪个线程正在使用run()?

2 个答案:

答案 0 :(得分:10)

run()中,您可以执行以下操作:

Thread.currentThread().getName()

获取“getOnlineUsers”或“getChatUsers”并相应地采用不同的代码路径。也就是说,对我来说,这似乎是一个相当脆弱的设计,我想你会为每个线程分别提供更好的课程。

答案 1 :(得分:3)

if (getName().equals("getOnlineUsers")) {
    doOneThing();
else if (getName().equals("getChatUsers")) {
    doAnotherThing();
} else {
    throw Up();
}
编辑:忽略这个答案。阅读接受的答案。