готов лаби 4 курс 1 сим / СПЗ / laba_2
.docxМіністерство освіти і науки, молоді та спорту України
Кіровоградський національний технічний університет
МТФ
Кафедра Програмного забезпечення
Дисципліна СПЗ
Лабораторна робота №2
Виконав ст. гр. КІ-10-1
Перевірив викладач
Бісюк В.А.
Кіровоград 2013
Завдання:
Написати програму ( на будь якій мові програмування), запуску процесу, створити і запустити 4 іменованих потока, після запуску кожного потоку виводити повідомлення: “Запущено потік - (ім’я потоку)”.
Потім в циклі в кожному потоці по 50 разів виводити номер потоку (1,2,3,4). Далі встановити пріоритети потоків 1- Lowest, 2 - BelowNormal, 3 - Normal, 4 – AboveNormal і знову вивести по 50 разів виводити номер потоку.
Після виведення останнього повідомлення вивести запит на завершення роботи програми і знищення потоків і процесів.
В звіті повинен бути висхідний код програми з коментарями.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace lab_2 { class Program { static void Main() { //створення 1-гопотоку Thread p1 = new Thread(new ThreadStart(first)); p1.Start(); //Запуск 1-гопотоку Thread p2 = new Thread(new ThreadStart(second)); p2.Start(); Thread p3 = new Thread(new ThreadStart(third)); p3.Start(); Thread p4 = new Thread(new ThreadStart(fourth)); p4.Start(); Console.ReadKey(true); } static void first() //Функція, щозапускається 1-мпотоком { Console.WriteLine("Запущенопотiк №1"); for (int i = 0; i < 49; i++) Console.WriteLine("1"); Thread.CurrentThread.Priority = ThreadPriority.Lowest; Console.WriteLine("Встановленопрiоритет - Lowest"); for (int i = 0; i < 49; i++) Console.WriteLine("1"); if (Thread.CurrentThread.IsAlive) { Console.WriteLine("Потiк №1 будезакрито!"); Thread.CurrentThread.Abort(); } } static void second() { Console.WriteLine("Запущенопотiк №2"); for (int i = 0; i < 49; i++) Console.WriteLine("2"); Thread.CurrentThread.Priority = ThreadPriority.BelowNormal; Console.WriteLine("Встановленопрiоритет - BelowNormal"); for (int i = 0; i < 49; i++) Console.WriteLine("2"); if (Thread.CurrentThread.IsAlive) { Console.WriteLine("Потiк №2 будезакрито!"); Thread.CurrentThread.Abort(); } } static void third() { Console.WriteLine("Запущенопотiк №3"); for (int i = 0; i < 49; i++) Console.WriteLine("3"); Thread.CurrentThread.Priority = ThreadPriority.Normal; Console.WriteLine("Встановленопрiоритет - Normal"); for (int i = 0; i < 49; i++) Console.WriteLine("3"); if (Thread.CurrentThread.IsAlive) { Console.WriteLine("Потiк №3 будезакрито!"); Thread.CurrentThread.Abort(); } } static void fourth() { Console.WriteLine("Запущенопотiк №4"); for (int i = 0; i < 49; i++) Console.WriteLine("4"); Thread.CurrentThread.Priority = ThreadPriority.AboveNormal; Console.WriteLine("Встановлено прiоритет - AboveNormal"); for (int i = 0; i < 49; i++) Console.WriteLine("4"); if (Thread.CurrentThread.IsAlive) { Console.WriteLine("Потiк №4 будезакрито!"); Thread.CurrentThread.Abort(); } } } }