美文网首页
netty的线程安全以及eventloop+channel关系

netty的线程安全以及eventloop+channel关系

作者: monk87 | 来源:发表于2019-10-11 08:25 被阅读0次

netty中channel是线程安全的。因此,我们可以存储一个channel的引用,并且在需要向远端发送数据时,通过这个引用来调用channel相关的方法。即便此时有多个线程都在使用它,也不会出现多线程问题。而且,消息一定会按照顺序发送出去。

  • 一个EventLoopGroup 只会包含一个或多个EventLoop
  • 一个EventLoop在它的整个生命周期中都只会与唯一一个Thread绑定,下面是它的父类中的对象
/**
 * Abstract base class for {@link OrderedEventExecutor}'s that execute all its submitted tasks in a single thread.
 *
 */
public abstract class SingleThreadEventExecutor extends AbstractScheduledEventExecutor implements OrderedEventExecutor {

    static final int DEFAULT_MAX_PENDING_EXECUTOR_TASKS = Math.max(16,
  //省略不相关代码
    private final Queue<Runnable> taskQueue;

    private volatile Thread thread;

  • 所有由eventloop所处理的各种io事件都在它所关联的thread上执行
  • 一个 Channel在他的生命周期中只会注册在一个eventloop上
  • 一个EventLoop在运行过程中,会被分配给多个Channel

相关文章

  • netty的线程安全以及eventloop+channel关系

    netty中channel是线程安全的。因此,我们可以存储一个channel的引用,并且在需要向远端发送数据时,通...

  • 高并发编程总纲

    个人介绍 Java多线程,各种并发集合,线程安全。 Java锁,性能以及效率。 框架netty。在netty基础上...

  • JAVA-每日一面 2022-01-24

    说说Netty 线程模型和 Netty 的零拷贝 Netty 线程模型首先,Netty 使用 EventLoop ...

  • iOS CoreData多线程(一)☂️

    CoreData与线程安全 CoreData不是线程安全的,对于ManagedObject以及ManagedObj...

  • EventLoopGroup

    NioEventLoopGroup 与 Reactor 线程模型的对应关系 见《Netty中的三种Rea...

  • 多线程 以及 线程安全

    移动端开发过程中,会出现 进程 和 线程的概念,以及多线程中 线程安全 的问题。 进程 和 线程 进程: APP...

  • 并发编程学习

    JAVA同步类容器线程是否安全以及介绍: 1,ArrayList,LinkedList线程不安全Vector 对应...

  • iOS-底层原理 29:锁的原理

    本文主要介绍常见的锁,以及synchronized、NSLock、递归锁、条件锁的底层分析 线程安全:线程安全:当...

  • netty 线程模型(未完成)

    参考 Netty原理架构解析 netty 入门 netty工作原理架构图+ 虽然Netty的线程模型基于主从Rea...

  • Netty线程模型

    线程模型设计的好坏,决定了系统的吞吐量,并发性和安全性能架构质量属性。Netty线程模型被精心的设计,既提升了并发...

网友评论

      本文标题:netty的线程安全以及eventloop+channel关系

      本文链接:https://www.haomeiwen.com/subject/ptnzpctx.html