我正在创建一个 javafx 应用程序。它使用一些繁重的编程(重映射)。我需要对它进行多线程处理,因为用户体验变得滞后。
如果可能的话,我不想重写整个代码。但这不是必需的。我需要有人完整地解释生命周期,如何控制线程以及如何要求它做某事。
例如,我在我的 fxml 控制器中提供了完整的映射字符列表:
@FXML
private static final Map <Character, String> myMap = new HashMap <> ();
static {
myMap.put('a', "5");
myMap.put('b', "6");
myMap.put('c', "7");
myMap.put('d', "8");
//And so on...
}
然后我在按下按钮时对输入文本进行编码:
String codedTextOut;
textToCode = enteredText.getText();
StringBuilder encoderTextSB = new StringBuilder();
for (char codeChar : textToCode.toCharArray()) {
encoderTextSB.append(myMap.get(codeChar));
}
codedTextOut = encoderTextSB.toString();
它提供了滞后的用户体验。我想创建一个单独的线程来执行按钮按下时的编码操作。请帮助并解释线程的各种属性。(我已经检查了http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm,但信息量不大)