进程和线程有什么区别
http://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread-executor-examples/
All modern operating systems support concurrency both via processes and threads. Processes are instances of programs which typically run independent to each other, e.g. if you start a java program the operating system spawns a new process which runs in parallel to other programs. Inside those processes we can utilize threads to execute code concurrently, so we can make the most out of the available cores of the CPU.
什么是锁mutex
http://stackoverflow.com/questions/34524/what-is-a-mutex
什么是信号量
http://stackoverflow.com/questions/2332765/lock-mutex-semaphore-whats-the-difference
A lock allows only one thread to enter the part that's locked and the lock is not shared with any other processes.
A mutex is the same as a lock but it can be system wide (shared by multiple processes).
A semaphore does the same as a mutex but allows x number of threads to enter.
You also have read/write locks that allows either unlimited number of readers or 1 writer at any given time.