!7 sclass ManySleepingThreads extends DynPrintLog { int number = 5; transient JTextField tfNumber; transient L threads = synchroList(); JComponent visualize() { ret northAndCenterWithMargins(centerAndEastWithMarginInbetween(withLabel("Number of threads:", tfNumber = jLiveValueTextField(dm_fieldLiveValue('number))), jbutton("Make threads", rThread makeThreads)), super.visualize()); } void makeThreads { temp enter(); L l = getAndClearList(threads); print("Interrupting " + n2(l, "thread")); interruptThreads(l); l = null; if (tfNumber != null) setField(number := parseInt(gtt(tfNumber))); for i to number: { threads.add(startThread("Sleeper", r sleep)); print("Made thread " + (i+1) + "/" + number); } } }