网络编程教程
-
000-网络编程系列(一)
多线程文章链接 [1.网络编程之多线程Runnable](https://www.ycbbs.vip/?p=320 "1.网络编程之多线程Runnable") …
-
019-十九、网络编程Netty 粘包 & 拆包 & 编码 & 解码 & 序列化
前言 Netty 作为一个网络框架,对 TCP 连接中的问题都做了全面的考虑,比如粘包拆包导致的半包问题,如何编解码,如何实现私有协议,序列化等等。 本文主要针对这些问题做一个简单…
-
018-十八、网络编程Netty 解码器抽象父类 ByteToMessageDecoder 源码解析
前言 Netty 的解码器有很多种,比如基于长度的,基于分割符的,私有协议的。但是,总体的思路都是一致的。 拆包思路:当数据满足了 解码条件时,将其拆开。放到数组。然后发送到业务 …
-
017-十七、网络编程Netty实现一个简单的 RPC
前言 众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。今天我们就自己用 Netty 实现一个简…
-
016-十六、网络编程-NIO、BIO、AIO
引言 java.nio全称java non-blocking IO,是指jdk1.4 及以上版本里提供的新api(New IO),为所有的原始类型(boolean类型除外)提供缓存…
-
015-十五、网络编程-ServerSocket(二)
引言 前面已经讲过线程池和ServerSocket的编程了,这一节讲讲怎么在ServerSocket中结合线程池使用。 现在服务器端采用的实现方式是:一个客户端对应一个线程。但是,…
-
014-十四、网络编程-ServerSocket(一)
引言 上一节讲解socket的基本使用,这一节来顺带着讲讲socket的一个自认为重要的设置选项的方法,哈哈,多多少少会在今后的开发中使用到。还是比较好用的。 public voi…
-
013-十三、网络编程-Socket(二)
引言 java.net.Socket 类代表客户端和服务器都用来互相沟通的套接字。客户端要获取一个 Socket 对象通过实例化 ,而 服务器获得一个 Socket 对象则通过ac…
-
012-十二、网络编程-Socket(一)
引言 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。 java.net 包中 J2SE 的 API 包含有类和接口,它们提供低层次的通信细节。你可以直…
-
011-十一、网络编程之网络编程-UDP
引言 UDP 是 User Datagram Protocol的简称, 中文名是用户数据报协议,是 OSI(Open System Interconnection,开放式系统互联)…
-
010-十、网络编程多线程之线程池
引言 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线…
-
009-九、网络编程之多线程之单例模式
引言 java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例、饿汉式单例、登记式单例。 单例模式有以下特点: 1、单例类只能有一个实例。 2、…
-
008-八、网络编程之多线程之管道流
引言 在java语言中提供了很多输入与输出流,使我们方便了对数据进行操作,其中管道流是一种特殊的流,用于在不同线程间直接传输数据。一个线程发送到输出管道,另一个线程从输入管道中读取…
-
007-七、网络编程之生产者消费者(二)
前言 上一节讲解了生产者与消费者模式的基本理论以及简单实现,并且遗留下来一个消费商品是 null,库存为:-1的问题 ,看下代码。 /** * 首先需要一个商品共享类 */ Goo…
-
006-六、网络编程之生产者消费者(一)
引言 生产者消费者模式是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔…
-
005-五、网络编程之线程同步&死锁详解
引言 我们再谈 synchronied 同步,现在我们都知道了 synchronied 是同步代码了,它默认是的对象锁是 this,往往效率都不高,因为每次执行到 synchron…
-
004-四、网络编程之线程安全详解
一、方法内部变量线程安全 方法内部的变量一般不会有“非线程安全”的问题。示例。 public class TheadTest5 { public static void main(…
-
003-三、网络编程之线程优先级和守护详解
一、线程优先级 线程可以划分优先级,优先级分为1-10的10个等级,数字越大优先级越高,优先级较高的线程得到CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务(其实并…
-
002-二、网络编程之线程停止详解
引言 多线程中有三种方式可以停止线程。 设置标记位,可以是线程正常退出。 使用stop方法强制使线程退出,但是该方法不太安全所以已经被废弃了。 使用Thread类中的一个inter…
-
001-一、网络编程之多线程Runnable
Runnable JDK说的:Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。实现类必须实现一个名称为 run 的无参数方法。 也有其它的说法是:如果让一个线…