小编use*_*022的帖子

限制javafx gui更新

我随机地以高频率接收数据对象,并且需要使用这些来更新JavaFX GUI.但是,我不想用大量的runnable填充javafx事件队列(我使用Platform.RunLater).

我一直在考虑如何最好地实现限制算法.

  • 是否最好有一个单独的GUIUpdater线程来检查例如新对象的阻塞队列,然后睡眠例如30ms,然后在无限循环中再次检查?在这种情况下,阻塞队列是否是最佳数据结构?请注意我只需要最新的数据对象,blockingQueue是一个FIFO队列,我似乎无法选择最新的条目.
  • 或者 - 如果nanoTime-startTime> 30ms,只需用Platform.RunLater更新GUI会更好吗?在这种情况下,我不需要单独的线程来执行Platform.RunLater调用.但是 - 如果在30ms未通过时收到更新,然后一段时间内未收到任何更新,则最后一次更新将不会显示在GUI中.

有关如何以简短有效的方式为JavaFX Platform.RunLater GUI更新设计限制算法的任何建议?

java user-interface multithreading javafx thread-safety

15
推荐指数
1
解决办法
3361
查看次数

public static final int thread是否安全?

我想要一个文件,从多个线程访问常量.为此安排一个有很多public static final ints 的课程是否安全?

java thread-safety

3
推荐指数
1
解决办法
1295
查看次数

Pandas 计算一组中的所有值与上一组的最后一个值之间的差异

说我有一个熊猫数据框如下

df = pd.DataFrame({'val': [30, 40, 50, 60, 70, 80, 90], 'idx': [9, 8, 7, 6, 5, 4, 3],
                     'category': ['a', 'a', 'b', 'b', 'c', 'c', 'c']}).set_index('idx')

Ouput:

      val category
idx              
9     30        a
8     40        a
7     50        b
6     60        b
5     70        c
4     80        c
3     90        c
Run Code Online (Sandbox Code Playgroud)

我想添加一个新列,其中每个 'val' 和上一个类别的最后一个 'val' 之间存在差异。新列应如下所示:

     category    diff  val
idx                       
9          a     nan     30
8          a     nan     40
7          b      10     50
6          b      20     60
5          c      10 …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

1
推荐指数
1
解决办法
284
查看次数