如何区分两个线程

mit*_*538 0 java multithreading

我的程序中有以下代码:

Thread getUsersist, getChatUsers;

getUsersList = new Thread(this, "getOnlineUsers");
getUsersList.start();
getChatUsers = new Thread(this, "getChatUsers");
getChatUsers.start();
Run Code Online (Sandbox Code Playgroud)

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

Ken*_*art 10

run(),您可以这样做:

Thread.currentThread().getName()
Run Code Online (Sandbox Code Playgroud)

得到"getOnlineUsers"或"getChatUsers"并相应地采用不同的代码路径.也就是说,对我来说这似乎是一个相当脆弱的设计,我想你会为每个线程分别使用不同的类.

  • 注意这种方法的+1是粗略的,应该考虑更好的替代方案. (3认同)