NetApp interview question

What are the basic considerations and potentials pitfalls in designing multi-threaded applications?