윈도우 os : 멀티프로세스 지원
하나의 프로세스 안에서 2가지 일을 하고 있으며 이것을 스레드라고 한다.
하나의 프로그램에서 동시에 여러가지 일을 할수 있다. 이것을 멀티 스레드라고 한다.
콘솔환경 : 단일 스레드(한번에 한가지 일밖에 못한다.)
//notepad.exe
//mspaint.exe
//wordpad.exe
//explorer.exe
//iexplore.exe
Process를 사용해야한다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleEx
{
class Class3
{
static void Main(string[] args)
{
Console.WriteLine("메뉴 입력 : ");
//string input = Console.ReadLine();
//if (input == "1")
// Console.WriteLine("첫번째 실행");
//else if (input == "2")
// Console.WriteLine("두번째 실행");
ConsoleKeyInfo key = Console.ReadKey();
if (key.Key == ConsoleKey.NumPad1)
Console.WriteLine("첫번째");
else if (key.Key == ConsoleKey.NumPad2)
Console.WriteLine("두번째");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleEx
{
//Ex132.cs
class Ex132
{
static void Main(string[] args)
{
//Thread(스레드)
// - 한순간 동시에 실행할 수 있는 일의 단위
// - 1개의 스레드안에서는 일의 흐름도 1개
//Console.ReadLine();
//Console.WriteLine("출력");
//병렬로 작업하고 싶은 메서드를 thread 매핑
Thread thread = new Thread(new ThreadStart(AAA));
thread.IsBackground = true;
thread.Start();//AAA호출
//AAA();
Console.WriteLine("종료");
}
public static void AAA()
{
//프로그램 시작시 한개의 선만 가지고 있다
//또 하나의 스레드를 사용하여 중간에서 메서드 호출이 된다.
//동시에 두개의 일을 할수 있도록 상황을 만들어 줄수 있다.
Console.WriteLine("AAA 호출");
for (int i = 0; i < 2000000000; i++)
{
}
Console.WriteLine("AAA 호출끝");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ConsoleEx
{
//Ex133.cs
class Ex133
{
static void Main(string[] args)
{
Console.WriteLine("메인");
//
//Ani(); //직접호출X
Thread thread = new Thread(new ThreadStart(Ani));
thread.IsBackground = true;
thread.Start();
//string input = Console.ReadLine();
//Console.WriteLine(input);
System.Diagnostics.Process.Start("notepad.exe");
Console.ReadLine();
}
private static void Ani()
{
string a = "+";
for (int i = 0; i < 80; i++)
{
Console.Clear();
Console.WriteLine(a);
a += "+";
Thread.Sleep(100);//현재 흐름을 잠시 멈춤
}
}
}
}