- •Гугл-дока для екзамену Архітектура компютера. Програмне забезпечення
- •1. Поняття платформи. Структура та основні складові .Net Framework.
- •2. Функції та структура clr.
- •3. Поняття збірки. Метадані. Схема виконання .Net-додатку в clr.
- •4. Система типів даних мови c#. Типи-значення.
- •5. Система типів даних мови c#. Типи-посилання.
- •6. Масиви в c#: одновимірні, багатовимірні, ступеневі. Методи та властивості класу Array.
- •7. Методи в c#: модифікатори доступу, передача параметрів, перевантаження, наслідування.
- •7. Методи в c#: модифікатори доступу, передача параметрів, перевантаження, наслідування.(Второй вариант)
- •8. Багатопоточне програмування засобами .Net. Структура процесу ос Windows. Клас Thread.
- •9. Характеристика засобів синхронізації потоків та процесів .Net Framework.
- •10. Об’єкти синхронізації потоків .Net Monitor та ReaderWriterLock.
- •11. Об’єкти синхронізації потоків .Net lock та ManualResetEvent.
- •12. Об’єкти синхронізації потоків .Net AutoResetEvent та Mutex.
- •13. Обробка виключних ситуацій в мові c#, основні класи та методи .Net щодо обробки виключень.
- •14. Віртуальні функції та абстрактні класи в мові c#.
- •15. Статичні конструктори, поля та методи класів в мові c#.
- •17. Інтерфейси в мові c#. Порівняння з абстрактними класами. Сфера застосування інтерфейсів.
- •18. Огляд колекцій в .Net. Основні інтерфейси, що лежать в основі доступу до колекцій.
- •19. Колекція ArrayList. Методи та властивості. Переваги та недоліки використання.
- •20. Колекції Stack та Queue. Методи та властивості.
- •21. Колекція BitArray. Методи та властивості. Переваги та недоліки використання.
- •22. Колекція HashTable. Методи та властивості. Переваги та недоліки використання.
- •23. Характеристика generic-колекцій .Net
- •24. Колекція LinkedList. Методи та властивості.
- •26. Групи класів доступу до даних технології ado.Net.
- •27. Характеристика від’єднаних класів технології ado.Net.
- •28. Характеристика під’єднаних класів технології ado.Net.
- •29. Завантаження бінарних об’єктів у базу даних та вивантаження їх із неї.
- •30. Транзакції в базах даних. Інтерфейс транзакцій технології ado.Net.
- •31. Особливості мережевих протоколів tcp та udp. Поняття порту, адреси, сокету.
- •32. Характеристика сокетів зі з’єднанням. Інтерфейс класу Socket для даного типу сокетів.
- •33. Характеристика сокетів без з’єднання. Інтерфейс класу Socket для даного типу сокетів.
- •34. Характеристика асинхронних та синхронних сокетів. Інтерфейс класу Socket для даного типу сокетів.
- •35. Узагальнений алгоритм взаємодії клієнта та сервера при синхронному сокетному способі обміну даними зі з’єднанням. Інтерфейс класу tcpListener.
- •36. Узагальнений алгоритм взаємодії клієнта та сервера при синхронному сокетному способі обміну даними без з’єднання. Інтерфейс класу tcpClient..
- •37. Загальна схема та реалізація багатопоточного сокетного сервера зі з’єднанням.
- •38. Поняття сервіс-орієнтованого архітектури. Web-сервіси: переваги та недоліки, стандарти в основі Web-сервісів.
- •Стандарти, що використовуються веб-службами
- •Переваги веб-служб
- •Недоліки веб-служб
- •39. Компоненти архітектури Web-сервісів. Протоколи для Web-сервісів. Приклад реалізації серверної частини Web-сервісу.
- •Используемые стандарты
8. Багатопоточне програмування засобами .Net. Структура процесу ос Windows. Клас Thread.
Потоки позволяют программе C# выполнять парал. обработку, за счет чего появляется возможность одноврем. выполнения нескольких операций. Например, потоки можно использовать для наблюдения ввода данных пользов., выполнения фоновых задач и обработки одновременных потоков ввода.
Потоки имеют следующие свойства.
· Потоки позволяют программе выполнять параллельную обработку.
· Пространство имен .NET Framework System.Threading упрощает использование потоков.
· Потоки используют одни и те же ресурсы приложения.
По умолчанию программа на языке C# имеет один поток. Однако параллельно основному потоку могут создаваться и использоваться вспомогательные потоки (рабочие потоки).
Рабочие потоки могут использоваться для выполнения трудоемких или срочных задач без прерывания основного потока. Рабочие потоки также используются для выполнения "фоновых" задач в настольных приложениях, что позволяет основному потоку (который отвечает за элементы пользовательского интерфейса) оставаться доступным для команд пользователя.
Использование нескольких потоков лучше всего подходит задач, которые используют различные ресурсы, например дескрипторы файлов и сетевые подключения. Назначение нескольких потоков одному ресурсу, вероятнее всего, вызовет проблемы синхронизации и частую блокировку потоков во время ожидания, что сведет к миним целесообразность использования нескольких потоков.
Обычно рабочие потоки используются для выполнения трудоемких или срочных задач, для которых не требуется большое количество ресурсов, используемых другими потоками. Естественно, некоторые используемые программой ресурсы должны быть доступны для нескольких потоков. В этих случаях пространство имен System.Threading предоставляет классы для синхронизации потоков. Эти классы включают Mutex, Monitor, Interlocked,AutoResetEvent и ManualResetEvent.
Thread – класс который создает и контролирует поток, задает приоритет и возвращает статус.
Свойства
CurrentThread Возвращает выполняющийся в данный момент поток.
IsAlive Возвращает значение, показывающее статус выполнения текущего потока.
IsThreadPoolThread Возвращает значение, показывающее, принадлежит ли поток к группе управляемых потоков.
Name Получает или задает имя потока.
Priority Получает или задает значение, указывающее на планируемый приоритет потока.
ThreadState Возвращает значение, содержащее состояния текущего потока.
Методы
Abort() Вызывает исключение ThreadAbortException в вызвавшем его потоке для того, чтобы начать процесс завершения потока. Вызов данного метода обычно завершает поток.
Equals(Object) Определяет, равен ли заданный объект Object текущему объекту Object. Finalize Освобождает все ресурсы, используемые классом CriticalFinalizerObject
GetHashCode Возвращает хэш-код текущего потока.
GetType Возвращает объект Type для текущего экземпляра.
Interrupt Прерывает работу потока, находящегося в состоянии WaitSleepJoin.
Join() Блокирует вызывающий поток до завершения потока, продолжая отправлять стандартные сообщения COM и SendMessage.
ResetAbort Отменяет метод Abort, запрошенный для текущего потока.
Sleep(Int32) Приостанавливает работу текущего потока на заданное время.
Start() Вынуждает ОС изменить состояние текущего экземпляра на ThreadState.Running.
ToString Возвращение строки, представляющей текущий объект.