Matching Pairs Java Threads: Run vs StartOnline version Match thread behavior with start vs run by Fernando Castillo 1 Run() does not set up thread lifecycle 2 thread.run() 3 Start() creates a separate thread 4 Calling run() directly 5 New thread can run in parallel with main 6 thread.start() 7 start() can throw IllegalThreadStateException 8 thread.join() Only runs the code, no thread lifecycle Executes in the calling thread (no new thread) No new thread; executes synchronously Waits for the thread to finish before continuing A new thread is created to run the code Starts a new thread and runs concurrently Starting a thread twice is illegal Enables concurrent execution