JAVA并发编程

1 推荐资源
blog: 并发编程网-http://ifeve.com/java_multi_thread_programming_1_2/
书籍:JAVA并发编程实践 http://vdisk.weibo.com/s/aP04X7rRcCoks
2 提纲
并发程序可以提高多核处理器利用率,加快响应。即便是单核的情况下,并发程序也能有效的提高性能。和并发编程相应的是顺序编程。顺序编程中程序仅仅能依照顺序执行。当程序因等待资源堵塞时,整个程序也被迫等待。并发编程可以在一个任务堵塞的情况下切换到还有一个任务。有效的提高程序的性能。
有很多方法来实现并发编程,如多进程、函数式编程、多线程。进程自己拥有单独的内存空间。可以独立执行而不受其它进程的影响,因此有人把多进程看做并发编程唯一途径。

函数式编程是一种没有副作用的编程范式。由于 FP 语言不包括不论什么赋值语句,变量值一旦被指派就永远不会改变。

并且,调用函数仅仅会计算出结果 ── 不会出现其它效果。因此。FP 语言没有副作用。Java是採用多线程的方法实现并发编程,线程被觉得是“轻量级的进程“。线程之间共享内存,线程的创建、消失和上下文切换都是轻量级的。

可是。使用多线程的引入会带来线程安全、活跃度危急和性能危急。假设是安全意味着”什么坏事都没有发生过”。活跃度失效是与之互补的一面“好事终于发生了”而性能意味着“好事非常快尽快发生”【JAVA并发编程实践】。
JAVA多线程提纲
JgVA并发技术提纲
Callable接口和Runnable接口差别:

差别:1Callable使用call()方法,Runnable使用run()方法
2.call方法的原型为public interface Callable
{
V call() throws Exception;
} run方法的原型:
public interface Runnable
{
void call();
}
可分成两点:
a.call方法有返回值,run方法没有返回值
b.call方法可以抛出被处理的异常,run方法不能抛出异常
3.Runnable接口是java1.1引入的。Callable是java1.5新引入的。

原文地址:https://www.cnblogs.com/yfceshi/p/7161351.html