Иллюстрированный самоучитель по VB.NET




Содержание


Многопоточные приложения

  • Знакомство с многопоточностью
  • Домены приложений
  • Создание потоков
  • Метод Join
  • Имена потоков, CurrentThread и ThreadState
  • Окно потоков
  • Приостановка потока
  • Завершение или прерывание программных потоков
  • Приостановка и уничтожение потоков
  • Фоновые потоки (демоны)
  • Более серьезный пример: извлечение данных из кода HTML
  • Главная опасность (общие данные)
  • Решение проблемы: синхронизация
  • Команда SyncLock и класс Monitor
  • Взаимная блокировка
  • Совместная работа с данными по мере их создания
  • Многопоточность в графических программах
  • Следующий шаг: кнопка Show Count
  • Почему при многопоточном программировании возникает столько проблем?
  • Многозадачность в современных операционных системах воспринимается как нечто само собой разумеющееся [ До появления Apple OS X на компьютерах Macintosh не было современных многозадачных операционных систем. Правильно спроектировать операционную систему с полноценной многозадачностью очень трудно, поэтому за основу OS X пришлось взять систему Unix. ]. Пользователь рассчитывает на то, что при одновременном запуске текстового редактора и почтового клиента эти программы не будут конфликтовать, а при приеме электронной почты редактор не перестанет работать. При одновременном запуске нескольких программ операционная система быстро переключается между программами, по очереди предоставляя им процессор (если, конечно, на компьютере не установлено несколько процессоров). В результате создается иллюзия одновременной работы нескольких программ, поскольку даже лучшая машинистка (и самое быстрое Интернет-соединение) не угонится за современным процессором.

    Многопоточность (multithreading) в каком-то смысле можно рассматривать как следующий уровень многозадачности: вместо того, чтобы переключаться между разными программами, операционная система переключается между разными частями одной программы. Например, многопоточный почтовый клиент позволяет принимать новые сообщения электронной почты во время чтения или составления новых сообщений.


    Содержание    Вперед