Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 让Netty同步?_Java_Asynchronous_Netty - Fatal编程技术网

Java 让Netty同步?

Java 让Netty同步?,java,asynchronous,netty,Java,Asynchronous,Netty,你好,我是一个刚开始学习Netty框架的学生。 我正在用Netty构建一个HTTP服务器 我正在使用Netty 4.0.7。我的服务器基于Netty 4.0.6示例HttpUploadServer 如果我错了,请原谅我。。。我对异步网络的整个概念感到困惑 让我举个例子(我的服务器的生命周期) 客户端发送一个多部分POST请求 服务器逐个chunck读取请求chunck(在channelRead0方法中) 然后,服务器对缓存的数据执行一些操作并发送响应。但是,这项工作需要使用全局变量(例如,带有标

你好,我是一个刚开始学习Netty框架的学生。 我正在用Netty构建一个HTTP服务器

我正在使用Netty 4.0.7。我的服务器基于Netty 4.0.6示例HttpUploadServer

如果我错了,请原谅我。。。我对异步网络的整个概念感到困惑

让我举个例子(我的服务器的生命周期)

  • 客户端发送一个多部分POST请求
  • 服务器逐个chunck读取请求chunck(在channelRead0方法中)
  • 然后,服务器对缓存的数据执行一些操作并发送响应。但是,这项工作需要使用全局变量(例如,带有标题内容的字符串或某些公共方法)
  • 这是我的问题

    如何对某些方法和变量设置锁(使其同步),使它们不会相互冲突(同时处理不异步使用这些全局变量的请求)


    或者我只是误解了异步服务器的概念?

    您可以将synchronized块放在您想要保护的代码部分,而不是将整个方法设置为synchronized。处理程序似乎确保不会发生这种情况。我使用同一全局变量对多个连接运行了测试,没有冲突。我不确定我是否做得对,有人能批准吗?Netty的线程模型确保每个通道的所有事件都只由一个线程处理。所以你应该没事。