包邮2本  Java多线程与Socket:实战微服务框架+NIO与Socket编程技术指南书籍 2本pdf下载

包邮2本 Java多线程与Socket:实战微服务框架+NIO与Socket编程技术指南书籍 2本百度网盘pdf下载

作者:
简介:包邮2本 Java多线程与Socket:实战微服务框架+NIO与Socket编程技术指南书籍 2本
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

9787121360350  9787111604068  

 Java多线程与Socket:实战微服务框架

本书从实战角度出发,首先介绍Java多线程、Socket、Spring、动态代理、动态字节码、序列化等技术在构建分布式微服务框架中的应用。然后介绍一种微服务框架的架构设计与编程实践,并将这一微服务框架分解为底层Socket通信、服务注册与发现、服务暴露与引用、远程方法调用等层面,逐一深入讲解。这里重点介绍作者如何活用相关技术一步步地构建微服务框架的基础RPC框架并分享了相应的性能调优经验。后介绍微服务架构中配套的服务治理的设计与实现方案,包括服务的设计、配置、管理与监控。

第1章 多线程基础

1.1 多线程的概念

1.1.1 进程与线程

1.1.2 并发与并行

1.1.3 线程状态

1.2 Thread线程类

1.2.1 基本用法与思考

1.2.2 常用方法介绍

1.2.3 wait和sleep的区别

1.2.4 sleep和yield的区别

1.3 Runnable接口

1.4 线程池

1.4.1 Executors

1.4.2 ExecutorService

1.4.3 ThreadPoolExecutor

1.4.4 基本用法与思考

1.5 Callable与Future

1.6 线程安全与效率

1.6.1 什么是线程安全

1.6.2 线程同步

1.6.3 饥饿与公平

1.6.4 锁与死锁

1.6.5 线程中断

1.7 编程进阶

1.7.1 volatile关键字

1.7.2 synchronized关键字

1.7.3 wait/notify/notifyAll

1.7.4 CAS操作

1.7.5 atomic包

1.7.6 Lock自旋锁

1.7.7 Condition条件变量

1.7.8 线程安全容器

1.7.9 ThreadLocal类

1.7.10 CountDownLatch计数器

1.7.11 CyclicBarrier栅栏

1.7.12 Semaphore信号量

1.7.13 fork/join框架

第2章 Socket基础

2.1 TCP与Socket

2.2 TCP的通信过程

2.2.1 基本过程

2.2.2 建立连接

2.2.3 全双工异步通信

2.2.4 断开连接

2.2.5 优雅地断开

2.2.6 半……连接

2.3 通信方式

2.3.1 长连接与短连接

2.3.2 线程模型

2.3.3 拆包与组包

2.3.4 断包与粘包

2.3.5 数据包的结构

2.4 BIO

2.4.1 典型编程模型

2.4.2 关键API概述

2.4.3 字符流传输

2.4.4 字节流传输

2.4.5 传输多笔数据

2.5 NIO

2.5.1 NIO简介

2.5.2 Buffer

2.5.3 Channel

2.5.4 Selector

2.5.5 Scatter/Gather

2.5.6 Pipe

2.5.7 内存映像文件

2.5.8 文件传输示例

2.5.9 “聊天室”示例

2.6 AIO

2.6.1 AIO简介...........


NIO与Socket编程技术指南

本书主要介绍Java语言中高性能处理的原理技术:NIO和Socket。非常详细地讲解了NIO中的缓冲区、通道、选择器、编码,以及使用Socket技术实现TCP/IP和UDP编程,细化到了演示全部SocketOption的特性,这对理解基于NIO和Socket技术为基础所开发的NIO框架是非常有好处的,本书以案例为入口,将大部分在开发中常见的NIO和Socket的技术点都做了演示,细化到API级。在互联网技术日新月异的时代,Netty以及Kafka等这些高性能处理框架都在底层应用到了NIO和Socket,所以当你目前是有计划进军互联网技术时,本书也许会带给你一个方向。

前 言 第1章缓冲区的使用 1 1.1NIO概述 5 1.2缓冲区介绍 6 1.3Buffer类的使用 7 1.3.1包装数据与获得容量 7 1.3.2限制获取与设置 10 1.3.3位置获取与设置 12 1.3.4剩余空间大小获取 13 1.3.5使用Buffer mark()方法处理标记 14 1.3.6知识点细化测试 15 1.3.7判断只读 22 1.3.8直接缓冲区 22 1.3.9还原缓冲区的状态 23 1.3.10对缓冲区进行反转 24 1.3.11判断是否有底层实现的数组 28 1.3.12判断当前位置与限制之间是否有剩余元素 29 1.3.13重绕缓冲区 30 1.3.14获得偏移量 32 1.3.15使用List.toArray(T[])转成数组类型 33 1.4ByteBuffer类的使用 34 1.4.1创建堆缓冲区与直接缓冲区 35 1.4.2直接缓冲区与非直接缓冲区的运行效率比较 37 1.4.3包装wrap数据的处理 39 1.4.4put(byte b)和get()方法的使用与position自增特性 40 1.4.5put(byte[] src, int offset, int length)和get(byte[] dst, int offset, int length)方法的使用 41 1.4.6put(byte[] src)和get(byte[] dst)方法的使用 46 1.4.7put(int index, byte b)和get(int index)方法的使用与position不变 49 1.4.8put(ByteBuffer src)方法的使用 50 1.4.9putType()和getType()方法的使用 51 1.4.10slice()方法的使用与arrayOffSet()为非0的测试 53 1.4.11转换为CharBuffer字符缓冲区及中文的处理 54 1.4.12转换为其他类型的缓冲区 58 1.4.13设置与获得字节顺序 63 1.4.14创建只读缓冲区 65 1.4.15压缩缓冲区 65 1.4.16比较缓冲区的内容 66 1.4.17复制缓冲区 70 1.4.18对缓冲区进行扩容 72 1.5CharBuffer类的API使用 73 1.5.1重载append(char)/append(Char-Sequence)/append(CharSequence, start, end)方法的使用 73 1.5.2读取相对于当前位置的给定索引处的字符 74 1.5.3put(String src)、int read(CharBuffer target)和subSequence(int start, int end)方法的使用 74 1.5.4static CharBuffer wrap(Char-Sequence csq, int start, int end)方法的使用 76 1.5.5获得字符缓冲区的长度 76 1.6小结 77 第2章通道和FileChannel类的使用 78 2.1通道概述 78 2.2通道接口的层次结构 80 2.2.1AsynchronousChannel接口的介绍 82 2.2.2AsynchronousByteChannel接口的介绍 84 2.2.3ReadableByteChannel接口的介绍 84 2.2.4ScatteringByteChannel接口的介绍 85 2.2.5WritableByteChannel接口的介绍 86 2.2.6GatheringByteChannel接口的介绍 87 2.2.7ByteChannel接口的介绍 88 2.2.8SeekableByteChannel接口的介绍 89 2.2.9NetworkChannel接口的介绍 90 2.2.10MulticastChannel接口的介绍 91 2.2.11InterruptibleChannel接口的介绍 92 2.3AbstractInterruptibleChannel类的介绍 93 2.4FileChannel类的使用 95 2.4.1写操作与位置的使用 97 2.4.2读操作 100 2.4.3批量写操作 106 2.4.4批量读操作 109 2.4.5部分批量写操作 117 .........



^_^:e06ad96cfe8da6093dca647576021097