Hi, You never run the MyRunnable thread. To start a thread which is coded using implementing the Runnable Interface, you need to pass the runnable object to the Thread class. Now in your code, you never pass the object to Thread class but instead pass it to MyThread class which extends the Thread class. Since both the calls call MyThread's run method, so Inside Thread is printed twice!
The way you start a thread depends on the way you have defined it. If you have extended Thread class, then starting it is very simple. Just Create an instance and call Start method on that instance.
When you implement Runnable interface, you need to do three things 1. Create an instance of Class that implements Runnable. 2. Create a Thread instance and pass it the instance that is created in Step 1