Не тупик, но вы можете легко голодать темы.
например.
Object lock=new Object();
Runnable run=new Runnable(){
public void run(){
synchronized(lock){
lock.wait();
}
System.out.println("Im out");
}
}
Thread t1=new Thread(someRun);
Thread t2=new Thread(someRun);
t1.start();
t2.start();
Ничего не будет напечатано, и 2 потока будут ждать вечно;
Вы выигралине блокируется на одном общем ресурсе.