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)之间打印随机数。
答案 0 :(得分:3)
使用%
(modulo)运算符轻松/实用地完成:
(thread.getId() % 5 ) + 1
欢迎;)
由于mod-in-java-produces-negative-numbers和我无法保证,该线程ID始终为正,即使:
Math.abs(thread.getId() % 5) + 1
..甚至better(!):
(thread.getId() % 5 + 5) % 5 + 1
......可能有意义。