I want to update my current project to use threads.
Your project already uses threads. RMI is multithreaded. Two clients can and will execute methods on your remote object(s) simultaneously. It is up to you to prevent that in the appropriate places, by using synchronization or semaphores where you have non-thread-safe data structures for example.
I don't know what exactly what should be replaced by Runnable. I think that I might make the single object, which the server exposed, as Runnable. but I wonder how the client may interact with the object in this situation.
You don't need to implement Runnable
or anything else. Multi-threading in RMI is already happening in your current code. What you need to pay attention to is not multi-threading, but thread safety of your code.
please refer me to Any references you know to be familiar with this topic.
See the RMI Specification, #3.2. The language used there sometimes confuses people, but what it means is that you cannot asssume RMI is single-threaded.