현재상황
현재 멀티쓰레딩으로 파일읽어오는데 동기화 문제가 걸린다.
분명 동기화 프로그래밍은 한번해본적 있어서 할만할줄 알았으나 혼자 연습한거와 실무에서 사용하는건 다르다 ㅋㅋㅋ ㅠ
심각하게 코드에게 쳐맞고 있는 상황 당장 돌아가게는 해야되는데 큰일이다 ㅠㅁㅠ....
급한 불 부터....
일단 할일이 한 두개가 아니니 가장 기초적인 특정 프로그램을 작동시켜 출력값을 분석하고 내 프로그램의 입력값으로 사용하는 부분을 해결 해보자.
일단 나는 프로세스를 생성해서 Pipe방식으로 통신해서 파일을 가져오긴 했다.
Process를 생성하여 문제가 나는 부분의 데이터를 가져와하므로 WritePipe와 ReadPipe를 생성해서 프로세스의 출력값을 가져오는 방식을 택했는데 확실히 가장 기초적인 방식이어서 그런지 좀 느리긴하다. 절대 커밋될 것 같지 않은....ㅋㅋㅋㅋㅋㅋ
이렇게 된김에 프로세스간 통신에 대해 좀 알고가보자
프로세스간 통신에는 여러방법이 존재한다.
1) 파이프 방식 : 단방향이나 양방향으로 데이터를 전송하는 통신 파이프.
2) 소켓(socket): 네트워크 소켓을 사용하여 프로세스 간 통신을 할 수 있는 방법.
3) 메시지 큐 : 메시지 큐를 통해 메시지를 보내고 받을 수 있다. FIFO 방식으로 동작하며 운영체제에서 지원한다.
4) 공유 메모리 : 두 프로세스가 같은 메모리 영역을 공유하여 데이터를 교환 하는 방식.
5) 시그널(signal): 운영체제에서 발생하는 이벤트를 감지하고 처리하기 위한 메커니즘
6) 세마포어 : 프로세스가 공유자원에 접근할 수 있는 권한을 제어 하는데 사용된다.
7) 파일 : 파일을 생성,읽기,쓰기 를 통해서 프로세스간 데이터를 주고 받는다. 성능이 떨어짐
이런 방법들을 많이 쓴다.
현재 나는 파이프 방식을 통해 다른 프로세스의 출력값을 내 프로세스의 입력값을 사용하는 부분을 완성하였다...
일단 이렇게 하나는 여차저차 끝냈는데 속도에 관해서는 좀 더 생각해서 수정해야겠다.
다른 언어로 구현하고 나중에 아래 칸에 추가해놔야겠다.
'일상,취미' 카테고리의 다른 글
다시 시작하는 TIL6일차 (1) | 2024.06.12 |
---|---|
다시 시작하는 TIL 5일차 (1) | 2024.06.11 |
다시 시작하는 TIL3일차.... (1) | 2024.06.07 |
다시 시작하는 TIL 2일차.... (0) | 2024.06.06 |
다시 시작해보는 TIL....1일차 (0) | 2024.06.04 |