Раньше был пример Java-апплета (вполне возможно, до сих пор), который вы использовали для проверки того, какой алгоритм планирования использует ваша JVM и соответствующая ОС.Он анимировал две (или, может быть, больше, не помню) полосы, постепенно заполняющиеся, каждая из которых анимирована отдельным потоком с одинаковым приоритетом.
Эквивалент, который печатает:
red 1
red 2
green 1
red 3
green 2
и т. Д.на консоль, мне кажется, ближе всего по духу к природе «привет, мир».То есть «могу ли я заставить компьютер делать что-то бесполезное, но видимое?»
Таким образом, в каждом потоке вы хотите серию пауз (либо занятых, либо спящих, на ваше усмотрение, и которые вы выбираетеможет повлиять на вывод в зависимости от того, как запланирован ваш параллелизм), за каждым последует какой-то вывод.Возможно, вы захотите синхронизировать выходные данные - не очень важно, но если планировщик разбивает строку, будет неудобно читать.
Тогда, если ваша модель параллелизма является кооперативной (либо неолитической, либопотоки (или, возможно, что-то на основе рутины), вы также должны добавить подходящие урожаи, чтобы предотвратить заполнение красной полосы до того, как зеленая полоса начинается.Это говорит о том, что вы успешно сделали чередование вашего параллельного кода.