gpt4 book ai didi

java - 当我们使用自己的线程池时,netty可以线程安全吗?如果netty可以,为什么?

转载 作者:太空宇宙 更新时间:2023-11-04 10:17:29 26 4
gpt4 key购买 nike

我使用自己的线程池来处理耗时的任务。我们知道一个ChannelHanlder只能由一个EventLoop处理,而一个eventloop可以处理一系列chanelhandlers,因此它是线程安全的。但是当我使用自己的线程池时,netty可以线程安全吗?如果netty可以,为什么?

 ch.pipeline().addLast(bussLogicGroup, "ClientBussLogicGroup", clientHandler);

最佳答案

您可以从不属于 EventLoopGroup 的其他非线程进行写入,而不会造成任何问题。请参阅well-defined-thread-model不过,您(用户)仍然负责写入的顺序。示例来自链接:

Channel ch = ...;
ByteBuf a, b, c = ...;

// From Thread 1 - Not the EventLoop thread
ch.write(a);
ch.write(b);

// .. some other stuff happens

// From EventLoop Thread
ch.write(c);

// The order a, b, and c will be written to the underlying transport is not well
// defined. If order is important, and this threading interaction occurs, it is
// the user's responsibility to enforce ordering.

关于java - 当我们使用自己的线程池时,netty可以线程安全吗?如果netty可以,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51521232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com