운영체제 동기화
- 최초 등록일
- 2019.07.03
- 최종 저작일
- 2019.05
- 11페이지/ 한컴오피스
- 가격 1,000원
목차
1) 값을 증가 시킬 때
2) Interlocked.CompareExchange()를 이용하여 자료구조 시간에 배운 Linked List 자료구조를 구현하라. 각 스레드는 1~10의 값을 삽입하고 1~9의 값을 삭제하는 연산을 수행한다,
3) 노드 삽입, 삭제 시 뮤텍스 락과 언락으로 상호배제
본문내용
1) 값을 증가 시킬 때
① 함수 호출 : 몇 번을 반복해서 실행해도 정확한 값이 나온다.
- code
using System; using System.Collections.Generic; using System.Linq;
using System.Text; using System.Threading; using System.Threading.Tasks;
namespace Test2019
{
class Program
{
private static volatile int _val = 0;
static void AddValue(int value)
{
while (true)
{
var orgVal = _val;
var newVal = orgVal + value;
if (Interlocked.CompareExchange(ref _val, newVal, orgVal) == orgVal)
break;
}
}
static void ThreadBody()
{
for (int i = 0; i < 100000; i++) // Main 스레드와 병행 수행
참고 자료
없음