Привилегированные инструкции в Intel x86-64 [duplicate]

tl; dr: реализует Runnable лучше. Тем не менее, оговорка важна

. В общем, я бы рекомендовал использовать что-то вроде Runnable, а не Thread, потому что это позволяет вам поддерживать вашу работу только в сочетании с вашим выбором параллелизма. Например, если вы используете Runnable и позже решили, что на самом деле этого не требуется Thread, вы можете просто вызвать threadA.run ().

Предостережение: здесь, Я категорически отвергаю использование необработанных потоков. Я предпочитаю использовать Callables и FutureTasks (Из javadoc: «Адаптивное асинхронное вычисление»). Интеграция тайм-аутов, правильная отмена и объединение потоков современной поддержки параллелизма для меня гораздо более полезны, чем груды необработанных потоков.

Последующие действия: существует конструктор FutureTask , который позволяет использовать Runnables (если это то, что вам больше всего нравится), и по-прежнему пользоваться преимуществами современных инструментов параллелизма. Процитировать javadoc:

Если вам не нужен конкретный результат, подумайте об использовании конструкций формы:

Future f = new FutureTask(runnable, null)

Итак, если мы заменим их runnable на ваш threadA, мы получаем следующее:

new FutureTask(threadA, null)

Другим вариантом, который позволяет вам оставаться ближе к Runnables, является ThreadPoolExecutor . Вы можете использовать метод execute для передачи в Runnable для выполнения «данной задачи в будущем».

Если вы хотите попробовать использовать пул потоков, вышеописанный фрагмент кода будет выглядеть примерно следующим образом (с использованием фабричного метода Executors.newCachedThreadPool () ):

ExecutorService es = Executors.newCachedThreadPool();
es.execute(new ThreadA());

3
задан vakus 22 August 2016 в 10:33
поделиться

1 ответ

Следующие команды не могут быть выполнены в Ring 3:

LGDT
LLDT
LTR
LIDT
MOV (to and from control registers only)
MOV (to and from debug registers only)
LMSW
CLTS
INVD
WBINVD
INVLPG
HLT
RDMSR
WRMSR
RDPMC
RDTSC
2
ответ дан Alex Boxall 20 August 2018 в 08:30
поделиться
Другие вопросы по тегам:

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