同步编程和异步编程的差异

差异:

同步编程
- 一个请求对应一个线程。
- 所有都是阻塞执行,所有的执行都在一个线程持续。
- ThreadLocals工作良好。

异步编程
- 一个请求可能会被多个线程去执行。
- 所有都是非阻塞执行,一个被接受的请求可能会被返回到另一个线程的客户端(Client)。
- ThreadLocals必须从一个线程传播到另一个线程。

关于异步编程的总结:
DO...
- Learn functional programming(惰性求值 lazy evaluation,不变性 immutability,高阶函数 higher-order functions)
- Check various operators
- Think about the resiliency 
- Start gradually

DON'T...
- Use it for heavy computations
- Care about the threads
- Block non-blocking threads
- Use ThreadLocals
- Be afraid it ;)

你可能感兴趣的:(同步编程和异步编程的差异)