Есть ли способ ограничить .getId () - PullRequest
0 голосов
/ 04 мая 2018
Thread thbus = new Thread(bus);
bus.setName("Bus"+ thbus.getId());

Thread thmechanics = new Thread(bus);
bus.setMechanicsName("Mechanic "+ thmechanics.getId());

thbus.start();

Они генерируют потоки, которые есть в моих других классах. В строке "Mechanic "+ thmechanics.getId() будет напечатано "Mechanic" + случайное число. Я хочу знать, есть ли способ использовать .getId() для печати случайного числа между (1-5).

1 Ответ

0 голосов
/ 04 мая 2018

Легко / прагматично сделано, используя оператор % ( по модулю ):

(thread.getId() % 5 ) + 1

Добро пожаловать;)

Поскольку mod-in-java-производит-отрицательные числа и Я не могу гарантировать, что идентификатор потока всегда положительный, даже:

Math.abs(thread.getId() % 5) + 1

.. и даже лучше (!):

(thread.getId() % 5 + 5) % 5 + 1

... может иметь смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...