物联网netty对接socket设备-netty定义

1.netty定义

简单来讲,Netty是一个提供了易于使用的API的客户端/服务端框架。Netty并发非常高,一个非阻塞的IO,Netty传输速度也非常快,因为他是0拷贝,什么是零拷贝?NIO中的特性之一就是零拷贝,在Java中,内存分为堆和栈以及字符串常量值等等,如果有一些数据从IO中读取并且放到堆里面,中间会经过一些缓冲区。

具体来讲,如果要从IO中读取数据,分为两个步骤:

(1)从IO流中读取出来放到缓冲区,程序从缓冲区中读取,再放到堆中,此时数据就会被拷贝两次才能到达堆或者堆内存中。如果数据量很大,那么就会造成资源的浪费
(2)Netty其实就是利用NIO中的零拷贝特性,当Netty需要接收数据或者传输数据的时候,就会新开辟一块堆内存,然后数据就直接通过IO读取到了新开辟的堆内存中,这样也就加快了数据传输的速度。

2.阻塞与非阻塞

线程在访问某一个资源的时候,该资源是否准备就绪的一种处理方式,如果说该资源当前没准备就绪,这个时候就会有两种处理方式:阻塞与非阻塞
(1) 阻塞: 这个线程会一直持续等待这个资源就绪并处理完毕,直到响应返回一个结果,
这个时候线程一直是阻塞状态,不可以做任何事情

(2) 非阻塞: 这个线程直接返回结果,不会持续等待这个资源处理完毕才响应,它会去请
求别的资源

3.同步与异步

这里的 “同步与异步” 指的是访问数据的一种机制,类似于Ajax。
(1)同步:主动请求,并且会等待IO操作完成之后,IO会有一个通知

(2)异步:当一个线程主动请求数据之后,可以继续处理其他任务,发起其他请求,
多个请求完成之后再逐一的通过异步形式通知

发布了2 篇原创文章 · 获赞 0 · 访问量 32

猜你喜欢

转载自blog.csdn.net/weixin_44761211/article/details/105362498