Problem
In Java, multi threading introduces asynchronous behavior to your programs, you must enforce synchronicity when you need it.
Without synchronization, nothing stops a thread to access from calling a same method, on same object at the same time. This is known as Race Condition, because threads are racing each other to complete the method.
The output to your program:

The first line of the output printed 2!? This is because t1 wrote count's value and was preempted before it could print it. Note that for a thread to be preempted it need not go into sleep. OS does this neverthless.
If you notice the 1st line and 4th line you can see the inconsistency. This kind of inconsistency becomes unpredictable in huge programs.
Here are end results for running multiple times.

It should not be taken granted that always wrong results are produced. No, sometimes correct results are produced. It means that results will be unpredictable.
Misunderstanding on?
Thread skipped loop.!? No, thread didn't skip loop. Different threads accessed same value but before it could write it's own value other thread wrote the value and proceeded. As a result the next time it accessed the value, it picked up the wrong value.
This is known as Reader Writer Problem
Solution
In your program, t1 and t2 are accessing your count variable with different values. To prevent other threads from calling run() before other thread completes it we add a synchronized keyword before the method.
synchronized public void run(){}
The synchronized keyword guards the state from race conditions. Once, a thread enters the synchronized method, other threads are not allowed to use the method until the previous thread exits the method.
Here is the correct output due to synchronized keyword. Note: I used 200 as the end for loop.

Bonus
If there are proprietary methods you are using which take in shared data as input. You can use synchronized block
synchronized(objRef){ //Method calling }
objRef is the reference of the object being synchronized.
As recommended in comments
[Recommended Solution]
You should use AtomicInteger instead of native int. Use java.util.concurrent.atomic package.
Reference to java.util.concurrent.atomic
Instead of static int count = 0; use static AtomicInteger count = new AtomicInteger(0); and instead of count++; use count.incrementAndGet();
AtomicInteger is inherently synchronized.
Atomic Integer Reference Java Docs