Java学习笔记:进程与线程、BIO、NIO、Selector

本文详细介绍了Java中进程与线程的概念,以及进程的三态模型。接着深入探讨了BIO和NIO的对比,并通过具体的ByteBuffer案例展示了如何操作字节缓冲区。同时,讲解了NIO的Channel API,特别是ServerSocketChannel和SocketChannel的使用,以及Selector的设计思想和应用,包括服务器端和客户端的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

文章目录

一、进程和线程

1、进程(Process)

(1)概念

(2)从三个维度看进程模型

(3)为什么引入多进程模型

(4)进程产生和消亡的时间产生

(5)进程三态:执行态(Running)、就绪态(Ready)、阻塞态(Blocking)

2、线程(Thread)

3、进程调度算法(Process Scheduling Algorithm)

二、NIO和BIO对比

三、BIO案例

四、ByteBuffer案例

1、创建ByteBufferDemo类

2、了解ByteBuffer的属性和方法

3、编写test()方法,创建一个字节缓冲区对象,输出其容量、限制和位置属性值。

4、编写testPut()方法,创建字节缓冲区对象,添加数据

5、编写testGet()方法,创建字节缓冲区对象,写入数据,然后获取数据

6、编写testFlip()方法,创建字节缓冲区对象,写入数据,然后反转,最后获取数据

8、将英文字符串存放入字节缓冲区进行遍历

9、将中文字符串转成UTF-8字节数组存放入字节缓冲区进行遍历

10、将中文字符串转成GBK字节数组存放入字节缓冲区进行遍历

11、将中文字符串转成GB2312字节数组存放入字节缓冲区进行遍历

五、NIO—Channel

1、查看Channel API

(1)ServerSocketChannel, SocketChannel

(2)DatagramChannel

2、SocketChannel提供的读写方法

3、案例演示——NIODemo

(1)编写testAccept()方法

(2)编写testConnect()方法

(3)测试通道的read()方法

(4)测试通道的write()方法

六、Selector设计思想

1、问题的引入

(1)服务器端ServerDemo

(2)客户端ClientDemo

2、解决方法

七、Selector服务通道API

八、Selector案例

1、服务器Server

2、客户端Client


 

一、进程和线程

1、进程(Process)

(1)概念

进程=程序+执行。当把一个程序从磁盘中加载到内存中,CPU去运算和处理这个进程(运行起来的程序就是进程)。

(2)从三个维度看进程模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒城译痴无心剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值