求问java 异步编程实现的原理是什么?我一直不明白它与回调的区别,求解,谢谢

求问java 异步编程实现的原理是什么?我一直不明白它与回调的区别。假如我在执行某个任务的时候我再开启另外一个线程进行监听,这个与异步的实现有什么区别?

应该这样理解
同步是和异步进行比较的

回调只是一种编程方法,让代码更加的优雅,回调是函数式编程的一种说法,相对于面向对像编程时,“回调”就变成“事件监听”这种说法了

我们常说的同步回调,指的就是一个代码执行过程中,需要等到回调函数完全执行完后,才能往 下走。
异步回调指的是一个代码执行到回调函数时,他可以不需要经过回调结束就能往下走。

同步的时现就很容易了,我人一般的代码都是同步的。
对于异步,有比较多的实现方式,基于内存式,CPU调度等,

楼主应该先弄清楚同步和异步都是什么意思
异步其实简单的来理解就是凑从程序出发后不能马上得结果,而是要等到所有的组件都调用完成后通过,消息通知,状态判断,和回调等来通知调用这,程序做完了,可以得到结果了。

异步是与多线程相关的概念,而回调的使用不一定是用在异步编程中,事件监听模式中也用回调方法;因此“回调”的概念更接近于在“设计模式”范畴内的方法。我个人的体会理解是如此的,供参考。

[url]http://www.ibm.com/developerworks/cn/linux/l-callback/index.html[/url]

异步是CPU调度时候的机制,通过编程可以使用这个机制。
而回调是编程层面的设计模式。

同步和异步,属于计算机系统问题,与编码实现关系不大,编码只是开启和关闭它而已。