This tech talk covers the basic principles of the organization, implementation, and interaction of processes and threads. Main problems of concurrent applications are analyzed discussing classical problems. I give a classification of synchronization primitives and show pseudocode of their usage. The tech talk describes alternative approaches to development parallel and pseudo-parallel applications: software transaction memory (STM), actors, functional programming, and green threads.