스레드 사용의 적절한때는 언제인가요?
귀염포텐
질문 제목 :
스레드 사용의 적절한때(사용시기)는 언제인가요?
스레드를 적절하게 쓸 수 있는 곳은(기능적으로) 어디가 있을까요?
질문 내용 : 요 근래에 처음으로 스레드라는 것을 사용 해보았었는데,(동시 입출력)
아무리 생각해도 스레드 특성상 한번 호출되고 다른 것을(스레드 및 함수)호출하기에 흐름을 끊어의외로 쓸 곳이 없더군요..예를 들면, 잠깐 스레드를 호출함으로써, 전체적인 메인시스템의 흐름도가 깨진다거나.. 이런 현상이 발생하더군요.(저만 그런가요?)
(ex)메인에서 사용하다가 스레드로 넘어가 실행 할 경우 - 메인함수의 흐름을 끊어 메인에서 기존에 호출 되던것이 망가짐..)
이렇다면, 스레드 사용에 제한이나 문제가 있을법도 한데요.혹 스레드를 적절하게 쓸 수 있는 곳은 어떤 것이 있을까요?
가능하시다면, 예시도 붙여주시면 감사드려요!!!( _ _)
-
새나
아~ 그런거군요. \운영체제\ API마다.. 호~ 신기하네요~
감사합니다^^ -
해까닥
운영체제 API마다 사용 방법이 다릅니다.
구체적인 사용 방법은 운영체제 API 문서를 보세요. -
목화
아? 그러면 콘솔, 리눅스 상관없이 os기반으로 제공된다는건가요?
그러면 윈도우는 윈도우대로, 리눅스는 리눅스대로, 유닉스는 유닉스대로 따로따로
제공되는군요?
제공되는 os는 달라도 그 안에 제공되는 \뮤텍스\ -
가막새
동기화 객체는 운영체제 기반으로 제공됩니다.
리눅스도 뮤택스, 임계영역이 있네요. -
맑은
뮤텍스, 세마포어, 크리티컬섹션은 리눅스 기반인가요?
아님 콘솔기반이나 에이피아이기반에서도 사용이 가능한건가요? -
난새
예시는 윗분이 잘 말씀드렸네요.
참고로 쓰레드를 다룰때 중요한 것이 쓰레드 안전성입니다. 다중쓰레드 환경에서 같은 함수를 여러 쓰레드에서 불러와도 처리가 독립적으로 되는걸 보장해야 해요. 이를 위해선 공용변수를 이용할땐 뮤텍스, 세마포어 등을 통해 쓰레드간 동기화를 시켜주는 등의 작업이 필요하죠.
또한 기존 라이브러리 함수를 이용할때도 그 함수가 쓰레드 안전한지 체크해야 하고요 -
흰추위
아, 그럼 좋은 프로그래머가 되기 위해선 운영체제에 대해서도 어느정도 알아야하는군요..
저번에 유투브에 어떤 동영상 보니까 프로그래머라면 하드웨어쯤은 알아야 한다... 라고
적혀있었는데, 그런것과도 어느정도 유사한 것 같습니다.. -
개미
운영체제 수준에서 제어됩니다.
겉보기에는 모든 스레드가 동시에 일하는 것 같은데,
실상은 그렇지 않습니다.
그래서 운영체제와 시스템 스팩에 따라서 생성 스레드 갯수를 일정 수 이하로 권장하기도 합니다. -
큰재
음... 한 함수가 스레드를 점유하고 있는 시간도 정할 수 있나요?
만약 정한다면, 무조건 만든 갯수만큼의 스레드가 쉬지않고 (빈틈 없이) 맞물려 돌아가나요? -
연체리
거의 대부분의 곳에서 멀티 쓰레드가 사용되고 있죠...
가령, 한글 문서 작업을 한다고 할 경우, 인쇄 작업을 명령했을 경우, 쓰레드로 처리하지 않으면 인쇄작업이
모두 끝날 때까지 다른 작업이 블로킹 되어 짤없이 기다려야 합니다.
또한, 자료양이 많은 산술 연산을 처리한다고 할 경우, 단일 쓰레드로 한다면, 그 산술 연산이 모두 마무리 될때까지 다른 작업은 손도 못대고 기다려야 하지만, 멀티 쓰레드로 처리하면, 그 복잡한 산술연산 부분을 따로 떼어내 쓰
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |