Самостоятельная разработка программ |
Разработка многопоточных программ может быть очень азартным занятием. Основная причина состоит в том, что многозадачность требует от вас представления программы как совокупности параллельно выполняющихся фрагментов, а не линейной последовательности операций. Более того, во время выполнения поведение потоков часто трудно предугадать. Таким образом, вы можете быть удивлены (или даже сбиты с толку) действиями многопоточных программ. Лучший способ освоить многопоточность — поэкспериментировать с ней. В конце приведу несколько задач, которые вы, может быть, захотите решить. Попробуйте разместить на панели управления потоком еще один элемент управления — список, который позволит пользователю регулировать не только текущее значение приоритета потока, но и его класс приоритета. Расположите на панели управления разные объекты синхронизации, которые пользователь сможет включать и отключать по своему усмотрению. Это позволит вам проверить разные параметры и режимы синхронизации. Попытайтесь с помощью многопоточного сборщика мусора реже проводить очистку памяти, например, когда список gclist достигнет определенного размера или когда объем свободной памяти сократится до заданного размера. Как альтернативу вы можете использовать таймер ожидания для регулярного сбора мусора. В конце концов, можно поэкспериментировать с классом приоритета и текущим значением приоритета сборщика мусора, чтобы найти оптимум для вашей программы.
|