worldint
mathengi
worldint
전체 방문자
오늘
어제
  • 분류 전체보기 (152)
    • infra, cloud (4)
      • aws (4)
    • TIL,WIL(일간,주간 회고) (57)
    • 컴퓨터 공학 (5)
      • 정보통신 (3)
      • 컴퓨터 구조 (2)
    • Math (1)
      • linear algebra (0)
      • 명제와 집합 (1)
    • Operating System (8)
      • Linux Ubuntu (1)
    • programming (66)
      • c , c++ (9)
      • c# (0)
      • java (2)
      • javascript (14)
      • Python (4)
      • github (1)
      • programing terms (12)
      • html, css (2)
      • docker (3)
      • algorithm_datastructure (5)
      • database (11)
      • flutter(dart) (2)
    • 항해99 부트캠프 (7)
      • 사전교육 (7)
    • 보안관련 (1)

블로그 메뉴

    공지사항

    인기 글

    태그

    • NoSQL
    • docker
    • AWS
    • EC2
    • Javascript
    • flutter #provider #error
    • NVM
    • MongoDB
    • node
    • Blue/Green
    • nodejs
    • MONGOOSE
    • CloudFront
    • 디비데드락
    • db데드락
    • ci/cd
    • ec2 #코드디플로이 #리눅스

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    worldint

    mathengi

    스레드(Thread)
    Operating System

    스레드(Thread)

    2024. 10. 15. 16:46

    스레드란 무엇?

    스레드는 하나의 프로세스 위에서 동시에 동작하는 여러 작업들이라고 보면된다(작업의 단위)

    멑티 스레드

    프로세스 안에서 스레드의 움직임

    위 그림처럼 두개 이상의 스레드가 있는 것을 멀티 스레드라고 한다

    • 저렇게 진행이 중간에 끊기는 이유는 
      스레드는 프로세스 내에서 자원을 공유하는데
      스레드가 동시에 진행되게 되면 
      동일한 자원에 동시에 손을 대서 원하는 동작을 안할수가있다
      그래서 동시성을 제한해서 구현해야함
      예) 하나의 버튼을 한 스레드당 10번씩 누를 때 예상 값은 20이 카운트 되길 원했는데, 동시에 눌린 경우가 있어서 카운트가 15인경우

     

    스레드의 자원 공유

    스레드는 프로세스의 4가지 메모리 영역 중, 
    stack영역 만을 독립적으로 갖고

    나머지 3개의 메모리 영역은 다른 스레드와 공유하게된다

     

    독립적인 stack을 가지고 있다는 것의 의미

    stack은 함수 호출 시 생성되고, 함수가 끝나면 소멸됨
    스택은 함수 호출과 관련된 지역 변수, 리턴 주소, 함수 인자 등을 저장하는 메모리 공간
    stack을 독립적으로 가졌다는 것은 각 스레드가 각자의 함수를 호출한다고 봐도 된다

    공통의 자원(변수)에 접근 할 때에만 동기화(다른 스레드가 자원을 건들고 있으면 다른 스레드는 기다리는것)
    를 시켜줘서 실행 흐름을 컨트롤하고

    그 이외에는 각 스레드별 실행 흐름을 독립적으로 가지고 있다

     

     

    참초: https://inpa.tistory.com/entry/%F0%9F%91%A9%E2%80%8D%F0%9F%92%BB-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%E2%9A%94%EF%B8%8F-%EC%93%B0%EB%A0%88%EB%93%9C-%EC%B0%A8%EC%9D%B4#%EC%A0%95%EC%A0%81_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8_static_program

     

    👩‍💻 ‍완전히 정복하는 프로세스 vs 스레드 개념

    한눈에 이해하는 프로세스 & 스레드 개념 전공 지식 없이 컴퓨터의 프로그램을 이용하는데는 문제 없어 왔지만 소프트웨어를 개발하는 사람으로서 컴퓨터 실행 내부 요소를 따져보게 될때, 아

    inpa.tistory.com

     

    'Operating System' 카테고리의 다른 글

    메모리  (0) 2024.10.20
    데드락(deadlock)이란  (0) 2024.10.15
    프로세스  (0) 2024.10.15
    [linux] curl 명령어  (0) 2024.07.24
    win32, win64 차이  (0) 2022.10.14
      'Operating System' 카테고리의 다른 글
      • 메모리
      • 데드락(deadlock)이란
      • 프로세스
      • [linux] curl 명령어
      worldint
      worldint
      공부한 내용들, 트러블 슈팅, 아티클 번역 등등 올리는 블로그입니다

      티스토리툴바