Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Потоки в Visual Basic

Реферат Потоки в Visual Basic





ресилання файлів. Кожен програміст знає (або повинен знати) що ЦЕНТРАЛЬНИЙ ПРОЦЕСОР комп'ютера може тільки виконувати одну команду одночасно (проігноруємо існування багатопроцесорних машин). Як єдиний ЦЕНТРАЛЬНИЙ ПРОЦЕСОР може виконувати безліч завдань?

Це робиться швидким перемиканням між багатьма завданнями. Операційна система містить в пам'яті всі програми, які запущені в даний момент. Це дозволяє Центральний процесор виконувати програми по черзі. Щоразу відбувається перемикання між програмами, при цьому змінюється вміст внутрішніх регістрів, включаючи покажчик команди і покажчик вершини стека. Кожна з таких "Завдань" називається потоком виконання (thread of execution). p> У простій багатозадачній системі, кожна програма має емеет єдиний потік. Це означає, що ЦЕНТРАЛЬНИЙ ПРОЦЕСОР починає виконання команд на початку програми і продовжує дотримуючись інструкцій в послідовності, визначеній програмою доти, поки програма не завершується.

Скажімо, програма має п'ять команд: BCD і E, які виконуються послідовно (Ніяких переходів немає в цьому прикладі). Коли програма має один потік, команди будуть завжди виконувати в точно тому ж самому порядку: A, B, C, D і E. Дійсно, ЦЕНТРАЛЬНИЙ ПРОЦЕСОР може зажадати часу для виконання інших команд в інших програмах, але вони не впливатимуть на це додаток, якщо не мається конфлікт над загальними ресурсами системи, але це вже окрема тема для розмови. p> Просунута багатопотокова операційна система типу Windows дозволяє додатку виконувати більше ніж один потік одночасно. Скажімо, команда D в нашому типовому додатку могла створити новий потік, який стартував командою B і далі виконував послідовність команд C і E. Перший потік був би все ще A, B, C, D, E, але коли команда D виконається, виникне новий потік, який виконає команди б B, C, E (тут команди D вже не буде, інакше ми отримаємо ще один потік).

У якому порядку слідуватимуть команди в цьому додатку?

Це могло б бути:

Thread 1 A B C D E

Thread 2 B C E

Або так:

Thread 1 A B C D E

Thread 2 B C E

Або так:

Thread 1 A B C D E

Thread 2 B C E

Іншими словами, коли Ви починаєте новий потік виконання в додатку, Ви ніколи не можете знати точний порядок, в якому команди в двох потоках виконаються відносно один одного. Два потоки повністю незалежні. p> Чому - це проблема?

Імітатор Багатопоточності

Розглянемо проект MTDemo:

Проект містить один модуль коду, в якому міститься дві глобальних змінних:

'MTDemo - Multithreading Demo program

'Copyright В© 1997 by Desaware Inc. All Rights Reserved

Option Explicit

Public GenericGlobalCounter As Long

Public TotalIncrements As Long

'Цей проект містить одну форму - frmMTDemo1, яка містить

'наступний код:

'MTDemo - Multithreading Demo program' Copyright В© 1997 by Desaware Inc. Al...


Назад | сторінка 2 з 15 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Цифрове арифметико-логічний пристрій, що дозволяє виконувати операції відні ...
  • Реферат на тему: Грошовий потік
  • Реферат на тему: Проект "Блакитний потік"
  • Реферат на тему: Грошовий фінансовий потік
  • Реферат на тему: Потік ЕНЕРГІЇ через популяцію