草庐IT

NIOS II入门学习笔记【一】--- NIOS II软核处理器开发入门

​ 一、什么是软核处理器1、什么是处理器在弄清楚什么是软核处理器之前,需要首先明白什么是处理器,这里笔者浅显的作一番解释。众所周知处,理器是可以按照指令序列完成特定的逻辑功能的集成电路,一般的常见的微控制器都为SOC,即片上系统,包括中央处理单元、总线、存储器、外设,比如大家熟知STM32,其F103系列就是由Coretex-M3内核、AHBAPB总线、RAM、ROM以及GPIO等等一些外设组成的,上述所有的内容包含在一个芯片上,所以称之为片上系统,也是常说的微处理器。2、软核处理器具有FPGA和数字电路基础知识的读者应该清楚,FPGA可以通过编程实现几乎所有的数字电路的功能,并且由于Veri

NIO 缓冲区

摘要    Java提供了NIO操作的API,但真正处理NIO流,经常会出现如下代码:SocketChannelchannel=(SocketChannel)key.channel();ByteBufferbuffer=ByteBuffer.allocate(1024);while(channel.read(buffer)!=-1){//复位,转化为读模式buffer.flip();while(buffer.hasRemaining()){System.out.println("收到客户端"+channel.socket().getPort()+"的信息:"+StandardCharsets.

NIO 缓冲区

摘要    Java提供了NIO操作的API,但真正处理NIO流,经常会出现如下代码:SocketChannelchannel=(SocketChannel)key.channel();ByteBufferbuffer=ByteBuffer.allocate(1024);while(channel.read(buffer)!=-1){//复位,转化为读模式buffer.flip();while(buffer.hasRemaining()){System.out.println("收到客户端"+channel.socket().getPort()+"的信息:"+StandardCharsets.

从 Linux 内核角度探秘 JDK NIO 文件读写本质

1.前言笔者在《从Linux内核角度看IO模型的演变》一文中曾对Socket文件在内核中的相关数据结构为大家做了详尽的阐述。又在此基础之上介绍了针对socket文件的相关操作及其对应在内核中的处理流程:并与epoll的工作机制进行了串联:通过这些内容的串联介绍,我想大家现在一定对socket文件非常熟悉了,在我们利用socket文件接口在与内核进行网络数据读取,发送的相关交互的时候,不可避免的涉及到一个新的问题,就是我们如何在用户空间设计一个字节缓冲区来高效便捷的存储管理这些需要和socket文件进行交互的网络数据。于是笔者又在《一步一图带你深入剖析JDKNIOByteBuffer在不同字节序

从 Linux 内核角度探秘 JDK NIO 文件读写本质

1.前言笔者在《从Linux内核角度看IO模型的演变》一文中曾对Socket文件在内核中的相关数据结构为大家做了详尽的阐述。又在此基础之上介绍了针对socket文件的相关操作及其对应在内核中的处理流程:并与epoll的工作机制进行了串联:通过这些内容的串联介绍,我想大家现在一定对socket文件非常熟悉了,在我们利用socket文件接口在与内核进行网络数据读取,发送的相关交互的时候,不可避免的涉及到一个新的问题,就是我们如何在用户空间设计一个字节缓冲区来高效便捷的存储管理这些需要和socket文件进行交互的网络数据。于是笔者又在《一步一图带你深入剖析JDKNIOByteBuffer在不同字节序

BIO和NIO的区别和原理

BIOBIO(BlockingIO)又称同步阻塞IO,一个客户端由一个线程来进行处理当客户端建立连接后,服务端会开辟线程用来与客户端进行连接。以下两种情况会造成IO阻塞:服务端会一直阻塞,直到和客户端进行连接客户端也会一直阻塞,直到和服务端进行连接基于BIO,当连接时,每有一个客户端,服务就开启线程处理,这样对资源的占用时非常大的;如果使用线城市来做优化,当大量连接时,服务端也会面临无空闲线程处理的问题。那么怎么设计才能让单个线程能够处理更多请求,而不是一个。所以NIO就被提出。NIONIO(NonBlockingIO)又称同步非阻塞IO。服务器实现模式为把多个连接(请求)放入集合中,只用一个

BIO和NIO的区别和原理

BIOBIO(BlockingIO)又称同步阻塞IO,一个客户端由一个线程来进行处理当客户端建立连接后,服务端会开辟线程用来与客户端进行连接。以下两种情况会造成IO阻塞:服务端会一直阻塞,直到和客户端进行连接客户端也会一直阻塞,直到和服务端进行连接基于BIO,当连接时,每有一个客户端,服务就开启线程处理,这样对资源的占用时非常大的;如果使用线城市来做优化,当大量连接时,服务端也会面临无空闲线程处理的问题。那么怎么设计才能让单个线程能够处理更多请求,而不是一个。所以NIO就被提出。NIONIO(NonBlockingIO)又称同步非阻塞IO。服务器实现模式为把多个连接(请求)放入集合中,只用一个

Netty-NIO基础

一.NIO基础non-blockingio非阻塞IO1.三大组件1.1Channel&Bufferchannel有一点类似于stream,它就是读写数据的双向通道,可以从channel将数据读入buffer,也可以将buffer的数据写入channel,而之前的stream要么是输入,要么是输出,channel比stream更为底层graphLRchannel-->bufferbuffer-->channel常见的Channel有FileChannelDatagramChannelSocketChannelServerSocketChannelbuffer则用来缓冲读写数据,常见的buffer

Netty-NIO基础

一.NIO基础non-blockingio非阻塞IO1.三大组件1.1Channel&Bufferchannel有一点类似于stream,它就是读写数据的双向通道,可以从channel将数据读入buffer,也可以将buffer的数据写入channel,而之前的stream要么是输入,要么是输出,channel比stream更为底层graphLRchannel-->bufferbuffer-->channel常见的Channel有FileChannelDatagramChannelSocketChannelServerSocketChannelbuffer则用来缓冲读写数据,常见的buffer

Java NIO Socket学习

前言这周学习尼恩编著的《Netty、Redis、ZooKeeper高并发实战》,这本书写的很不错,通过十几个例子带领大家去体会高并发如何实现,这周我看了最基础的JavaNOI部分,读书的时候好像明白了作者写的内容,但是又体会不深,非得自己动手写一些书上得例子,有时候还要改动下例子,才能体会深刻,得出自己得结论。下面我们进入例子演示。BlockingIO首先我们会来一个BlockingIO的例子,也就是同步阻塞方式,在Java中,默认创建的socket都是阻塞的。先来看Server端代码,写一个继承ServerSocket的类@Slf4jpublicclassBlockReceiveServer