Я хочу создать набор данных для моей диаграммы, который будет обновляться один раз в секунду. Но я использую команды ssh для получения данных. Например, когда я вызываю sar -n DEV 1 1
на удаленном компьютере, он отвечает через 3 секунды. Я вызываю 5-6 команд серийно, как это, поэтому для обновления моей диаграммы требуется много времени. Поэтому мне нужно отправить эти команды в потоки, поэтому я могу ждать короче, чем раньше. Я не профессионал в потоковом режиме на Java.Возможно ли многопоточность в Jfreechart?
Вот пример кода:
public Mygraph()// my constructor function, it puts some components for my form.
{
// some code
timer = new Timer(FAST, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
TimePeriod period = new Second();
for (int j = 0; j < PARAM.length; j++) {
String sonuc = PRS.Pars1(SES.CONNECTION, "sar -n DEV 1 1 | grep -wF " + SUTUN
+ " | awk '{ print $" + PARAM[j] + " }' | tail -1");
String sutun = PRS.Pars1(SES.CONNECTION,
"sar -n DEV 1 1 | grep IFACE | tail -1 | awk '{ print $" + PARAM[j]
+ " }'");
// i need to get these "sonuc" and "sutun" variables
// concurrently above. Because each command takes 2-3
// seconds to execute.
dataset.add(period, Double.parseDouble(sonuc), sutun);
if (dataset.getItemCount() > COUNT) {
TimePeriod firstItemTime = dataset.getTimePeriod(0);
dataset.remove(firstItemTime, sutun);
}
}
}
});
// some code
}
+1 JFreeChart основан на AWT, но остальное правильно описано == должно быть 'точно так же, как любой другой компонент AWT/Swing, ...' – mKorbel
Вы правы. Ред. –
На самом деле, не для nitpick, но похоже, что JFreeChart хотя бы частично построен на Swing. Например, ChartPanel расширяет JPanel: http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/ChartPanel.html –