2
我目前正在研究一個項目,我想繪製一些測量的時間。爲此,我使用JFreeChart 1.0.13
。JFreeChart addBin與競爭條件?
我想創建一個帶有SimpleHistogramBin
的直方圖,然後將數據添加到這些箱。下面的代碼:
Double min = Collections.min(values);
Double max = Collections.max(values);
Double current = min;
int range = 1000;
double minimalOffset = 0.0000000001;
Double stepWidth = (max-min)/range;
SimpleHistogramDataset dataSet = new SimpleHistogramDataset("");
for (int i = 0; i <= range; i++) {
SimpleHistogramBin bin;
if (i != 0) {
bin = new SimpleHistogramBin(current + minimalOffset, current + stepWidth);
} else {
bin = new SimpleHistogramBin(current, current + stepWidth);
}
dataSet.addBin(bin);
current += stepWidth;
}
for (Double value : values) {
System.out.println(value);
dataSet.addObservation(value);
}
這崩潰,並Exception in thread "main" java.lang.RuntimeException: No bin.
起初我還以爲這是由打在垃圾箱差距造成的,但是當我開始調試,並沒有出現錯誤。該計劃通過了,我得到了一個陰謀。然後我說這個:
Thread.sleep(1000);
前
for (Double value : values) {
System.out.println(value);
dataSet.addObservation(value);
}
,並再次,沒有錯誤。
這讓我想,也許有某種競爭條件? JFreeChart是否異步添加垃圾箱?我希望向任何方向提示我爲什麼會得到這種行爲。
感謝