input(prompt)在python2.X与python3.X中到底有什么区别?
Python2 提供了 input,raw_input,print 等用于输入输出,但在 Python3 中发生了一些改变,raw_input 已经没有了,input 的用法发生了变化,print 也从原来的语句变成了一个函数。本文将对这两种情况进行介绍。
netty是Network Server,处于Web Server更下层的网络框架。Netty通过使用NIO的很多新特性,对TCP/UDP编程进行了简化和封装,提供了更容易使用的网络编程接口,按需封装独特的HTTP Server或者FTP Server等。
Netty提供了一种新的方式来使开发网络应用程序,这种新的方式使得它很容易使用和有很强的扩展性。Netty 的内部实现时很复杂的,但是Netty提供了简单易用的 api 从网络处理代码中解耦业务逻辑。Netty 是完全基于NIO实现的,所以整个 Netty 都是异步的。
简单点说就是Netty提供了一个简单,间接的方法来操作网络之间的通讯。
使用Netty带来的优势
API使用简单,开发门槛低。
功能强大,预置了多种编解码功能,支持多种协议开发。
定制能力强,可以通过ChannelHadler进行扩展。
性能高,对比其它NIO框架,Netty综合性能最优。
经历了大规模的应用验证。在互联网、大数据、网络游戏、企业应用、电信软件得到成功,很多著名的框架通信底层就用了Netty,比如Dubbo。
稳定,修复了NIO出现的所有Bug。
切换IO和NIO,因为IO和NIO的API完全不同,相互切换非常困难。
与类似的框架Mina相比有什么优势?
1)都是Trustin Lee的作品,Netty更晚;
2)Mina将内核和一些特性的联系过于紧密,使得用户在不需要这些特性的时候无法脱离,相比下性能会有所下降,Netty解决了这个设计问题;
3)Netty的文档更清晰,很多Mina的特性在Netty里都有;
4)Netty更新周期更短,新版本的发布比较快;
5)它们的架构差别不大,Mina靠apache生存,而Netty靠jboss,和jboss的结合度非常高,Netty有对google protocal buf的支持,有更完整的ioc容器支持(spring,guice,jbossmc和osgi);
6)Netty比Mina使用起来更简单,Netty里你可以自定义的处理upstream events 或/和 downstream events,可以使用decoder和encoder来解码和编码发送内容;
7)Netty和Mina在处理UDP时有一些不同,Netty将UDP无连接的特性暴露出来;而Mina对UDP进行了高级层次的抽象,可以把UDP当成”面向连接”的协议,而要Netty做到这一点比较困难。