해결된 질문
작성
·
174
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요. 어찌저찌 하다가 콜라볼를 이용해서 만들기는 하였는데 이렇게 코드로 만들어도 되는지 궁금해서 질문을 드립니다.
콜라볼에 Lsit값을 넣어서 , 심플한 callable 리스트를 만들었는데 이렇게 활용해도 되는지 알고 싶어서 코드를 올립니다.
이렇게 만들어도 되냐요? 답변 부탁드립니다.
답변 3
1
저의 생각을 말씀드리면 해당 코드는 미리 데이터를 넣어두고 단순히 call메서드에서 해당 처리하는 스레드가 잠깐 timed wait상태가 되었다가 리스트를 반환하는 로직입니다. 그런데 이 부분은 단일 스레드로 돌려도 무방하지 않을까라는 생각입니다. 단순 반환만 하는 로직이면 말이죠.
저라면 해당 로직에서는 멀티 스레드가 아닌 단일 스레드로 처리할 것 같습니다. 다만, 굳이 멀티스레드를 이용한다하면 add하는 로직을 넣을 것 같습니다. 물론 올려주신 코드처럼 출력 자체를 해도 되고 이것은 비즈니스 요구사항이 어떤가에 따라 달라지지 않을까요?
이런 코드 처리 할것 이라면, 그냥 메인에서 리스트<string> 이렇게 하고 출력 한다는 이야기였네요..(잘못 알아들었네요..)
여러개를 동시 작업 하는게 아니니까요.
0
으음.. 이야기하자면 오늘 오전 11시 ~ 12시 사이에 , 미래에 대한 나의 계획을 적어보자 라는 생각에서 시작했습니다.
Future이 생각이 났고, callable의 call()을 이용해서 나의 생각을 코드로 만들어보자 해서, 하다가 이렇게 만들어진 코드입니다. 저의 계획 및 생각을 int형으로 말할수 가 없어서, List<String>이 생각나서 이렇게 만들어졌습니다.
간략하자면 미래에 대한 스케줄 링 표? 이런 게 되겠네요
그냥 future 및 call()이 생각나서 이렇게 만들었다. 밖에 말할수 없네요.
0
안녕하세요, 인프런 AI 인턴입니다. 생각하는자님.
작성하신 질문은 Java의 Callable
인터페이스를 이용하여 리스트 값을 비동기적으로 처리하는 방법에 관한 것 같습니다. 이에 대해 적절한 답변을 제공해 드리겠습니다.
Callable
인터페이스는 자바에서 비동기적으로 작업을 수행할 수 있도록 하는 일종의 계약(인터페이스)입니다. Callable
은 Runnable
과 유사하지만, 작업이 완료되었을 때 결과를 반환할 수 있다는 점에서 차이점이 있습니다.
Future 객체 사용: ExecutorService
에 작업을 제출하고 Future
객체를 사용하여 그 결과를 받아오는 방식은 자바에서 비동기 프로그래밍을 처리하는 전형적인 방법입니다. Future.get()
메소드를 호출하면 비동기 작업의 결과를 대기할 수 있으며, 해당 작업이 완료될 때까지 블록됩니다.
List 처리: 코드 상에서 Callable
을 활용하여 리스트를 처리하는 것은 좋은 방법입니다. 여러 작업을 병렬로 처리하고 결과를 합산하여 목록으로 만들고자 할 때 유용합니다.
코드의 유연성: 만약 작업 단위가 매우 작아서 오히려 병렬 처리의 오버헤드가 생길 가능성이 있다면, 작업 단위를 조금 더 큰 단위로 조정하는 것도 고려해보세요.
관련하여 비슷한 질문에 대한 답변이 있는 URL은 아직 확인되지 않았습니다. 그러나, Java Concurrency 및 Callable 관련 게시글도 참고하시면 추가적인 도움을 받을 수 있습니다.
제공해주신 코드 스니펫이 충실하다면, 일반적인 사용 사례로서 잘 구현된 코드로 보이며 문제는 없어 보입니다. 추후 발생할 수 있는 오류나 추가적인 기능에 대해서는 지속적으로 테스트하고 검토해야 할 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
이렇게 말하시는 건가요? 양성빈님 가르켜 주셔서 감사합니다.