We have our own networking protocol and my initial integration tests were written to host a Server on one thread and a Client on another thread, then test the communication between those two. However, I was recently told I should use processes to host the Server and Client instead. The reasoning was because of possible synchronization issues and how Java or the OS (don't know which one) handles the scheduling for multithreading.
Is there actually a difference between running a Server and Client on two threads compared to two processes?