https://api.vvhan.com/api/avatar/boy

技术博客分享

Netty基础5.Netty的使用简介

通过ByteBuf的readableBytes()方法可以获得缓冲区可读的字节数,然后就可以根据缓冲区可读的字节数创建byte数组,接着通过ByteBuf的readBytes()方法便可以将缓冲区的字节数组复制到新创建的byte数组中。通过ChannelHandlerContext的write()方法会把待发送的消息放到发送缓冲区中,通过ChannelHandlerContext的flush()方法会将发送缓冲区中的消息写入到SocketChannel中发送出去。这就是TCP粘包和拆包问题。

Android,Java,Kotlin-确保线程顺序执行的多种实现方式

通过 Executors.newSingleThreadExecutor() 创建单线程池,任务会按提交顺序执行,确保线程2在线程1之后执行。本文将介绍几种常见的方法来实现这一需求,并提供详细的代码示例。是一个同步工具,可以让线程等待其他线程完成。如果使用 Kotlin,协程是最简洁的方式,可以轻松实现线程间的依赖关系。是 Android 中带有 Looper 的线程,可以按顺序处理任务。是最简单直接的方法,它会让当前线程等待目标线程执行完毕。是一个线程安全的队列,可以用来实现任务的有序执行。