同步 和 异步区别
同步和异步通常用来形容一次方法的调用.
同步方法调用一旦开始, 调用者必须等到方法调用返回后, 才能继续后续的行为. 而异步方法调用更像一个消息传递, 一旦开始, 方法调用就会立即返回, 调用者就可以继续后续的操作.
并发 和 并行区别
并发和并行是两个非常容易被混淆的概率. 它们都可以表示两个或者多个任务一起执行, 但是侧重点有些不同.
并发侧重于多个任务交替执行, 而多个任务之间有可能还是串行的. 并行则是真正意义上的同时执行.
临界区
临界区用来表示一种公共资源或者说是共享数据, 可以被多个线程使用. 但是每一次, 只能有一个线程使用它, 一旦临界区资源被占用, 其他线程要想使用这个资源, 就必须等待.
阻塞 和 非阻塞区别
阻塞和非阻塞通常用来形容多线程间的相互影响.
比如一个线程占用了临界区资源, 那么其他所有需要这个资源的线程就必须在这个临界区中等待. 等待会导致线程挂起, 这种情况就是阻塞. 此时如果占用资源的线程一直不愿意释放资源, 那么其他所有阻塞在这个临界区上的线程都不能工作.
非阻塞的意思与之相反, 它强调没有一个线程可以妨碍其他线程执行. 所有的线程都会尝试不断的向前执行.
来源: http://www.bubuko.com/infodetail-2776694.html