I know that the getName() function on the main thread will return the String main, but this can be changed with setName().
Is
From your question and your responses to comments I would suggest the following 2 approaches:
Place all requests to an event queue and main thread will take the requests from request queue to call the method you are talking about. In this case there must be a contract that any other method wanting to access the method you are talking about can do it only via the event queue (same idea as EDT).
Place an extra parameter in the method that you want to be called by
main only to act as a token.Inside the method check if the token is
correct (only main will have it/know it).If it is correct then
proceed.Otherwise return false. Of course if you are allowed to make such a modification