JavaFX генерирует исключение при выполнении SQL-запроса с использованием Java.util.Timer [duplicate]

Для ядра CUDA мы можем запустить не более 65536 блоков. Каждый запущенный блок может содержать до 1024 потоков. Поэтому в принципе я могу запустить до 65536 * 1024 (= 67108864) потоков.

Нет, это неверно. Вы можете запустить сетку до 65535 x 65535 x 65535 блоков, и каждый блок имеет максимум 1024 потока на блок, хотя ограничение потока потоков может ограничить общее количество потоков на блок меньше этого максимума.

Что делать, если мой поток использует много регистров? Будет ли мы до сих пор иметь возможность достичь этого теоретического максимума числа потоков?

Нет, вы не сможете достичь максимального количества потоков на блок в этом случае. Каждый выпуск инструментария NVIDIA CUDA включает таблицу калькулятора занятости, которую вы можете использовать, чтобы увидеть влияние давления регистра на размер предельного блока.

Кроме того, после написания и запуска ядра CUDA, как сделать Я знаю, что количество потоков и блоков, которые я запускал, действительно было создано. Я имею в виду, что я не хочу, чтобы графический процессор вычислял некоторый барахло или странно наблюдал, если бы я случайно создал больше потоков, чем это возможно для этого конкретного ядра.

Если вы выберете неправильную конфигурацию выполнения (так что неправильный размер блока или размер сетки) ядро ​​не запускается, и среда выполнения выдаст сообщение об ошибке cudaErrorInvalidConfiguration. Вы можете использовать стандартные cudaPeekAtLastError() и cudaGetLastError(), чтобы проверить статус запуска ядра.

35
задан Flow 19 December 2016 в 08:35
поделиться

2 ответа

Пользовательский интерфейс не может быть напрямую обновлен из потока, отличного от приложения. Вместо этого используйте Platform.runLater(), с логикой внутри объекта Runnable. Например:

Platform.runLater(new Runnable() {
    @Override
    public void run() {
        // Update UI here.
    }
});

В качестве выражения лямбда:

// Avoid throwing IllegalStateException by running from a non-JavaFX thread.
Platform.runLater(
  () -> {
    // Update UI here.
  }
);
88
ответ дан Dave Jarvis 20 August 2018 в 10:54
поделиться
  • 1
    @Marc это Platform.runLater(); будет ли поток JavaFX? как вы упомянули. – Asif Mushtaq 21 September 2016 в 15:49
  • 2
    Не «не может», «может быть» не должно ». Я обновил его просто отлично от отдельного потока (внутреннего класса), хотя он каждый раз вызывал исключение каждый раз, когда он обновлялся. – Nik-Lz 21 April 2018 в 04:37
  • 3
    – Travis Tubbs 24 September 2018 в 16:22

Код JavaFX позволяет обновлять пользовательский интерфейс из потока приложений JavaFX. Но из приведенного выше сообщения об исключении говорится, что он не использует поток приложений FX.

. Один из способов, который вы можете исправить, - запустить поток приложения FX из метода resetPage и внести изменения в него.

4
ответ дан MohamedSanaulla 20 August 2018 в 10:54
поделиться
  • 1
    Не могли бы вы рассказать о том, как я могу запустить поток приложений FX? – dVaffection 29 October 2014 в 07:38
Другие вопросы по тегам:

Похожие вопросы: