use*_*979 7 java ssl nio sslengine
我正在使用java NIO编写服务器,我有几个问题,我无法找到答案.
首先,关于SSLEngine,如何NEED_TASK在分离的线程中正确处理?当我在单独的线程中调用任务时,他们完成了,但我不知道如何返回执行另一个握手操作.一种选择是从执行委派任务的线程调用该操作,但我想这不是这样做的方法.
另一个问题是interestOps()从不同的线程调用然后选择器线程.在尝试写入频道后没有写入所有数据后,我需要更改关键兴趣.我想过在ROX NIO教程中使用某种类型的更改队列,但我在另一个帖子中读到这不是最好的方法.
首先关于SSLEngine,如何在单独的线程中正确处理NEED_TASK。当我在单独的线程中调用任务时,它们完成,但我不知道如何返回执行另一个握手操作。
当引擎处于 NEED_TASK 状态时,它不能执行任何其他操作。当任务完成后,您应该重复最初返回 NEED_TASK 的操作,并让引擎告诉您下一步要做什么。您需要阻止或禁用其他线程使用该引擎,直到任务完成,即不要在该通道上进行选择。
另一个问题是关于从不同的线程调用interestOps()然后选择器线程。在尝试写入通道但未写入所有数据后,我需要更改关键兴趣。我考虑过使用某种类似 ROX NIO 教程中的更改队列,但我在此处的另一个线程中读到这不是最好的方法。
那就是我。我讨厌那些队列。我只是唤醒()选择器并更改interestOps,从未见过任何问题。选择器线程必须正确处理准备好的零键,但它已经需要这样做了。
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |