Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Міністерство освіти і науки, молоді та спорту України
Кіровоградський національний технічний університет
МТФ
Кафедра Програмного забезпечення
Дисципліна СПЗ
Лабораторна робота №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();
}
}
}
}