일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- vuex
- javscript
- vuetify
- version mismatch
- WebXR
- promise
- PDO
- CI/CD
- array
- AR
- npx
- JavaScript
- JS
- Component
- EM6
- 3d
- 상태관리
- bootstrap
- Node
- auth0
- web
- Three.js
- vue-template-compiler
- VR
- A-Frame
- aframe
- vue
- package-lock.json
- PHP
- WebVR
Archives
- Today
- Total
대가는 결과를 만든다
메인 스레드에서 생성한 자식 스레드에서 처리한 리턴 값 받기 본문
반응형
스레드에서 처리한 값을 메인 스레드에서 리턴받고 싶을 때 어떻게 하는가?
스레드 정의 부분에서 getter를 이용해 결과값을 반환하는 메서드를 정의
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class CustomChildThread extends Thread{ private String SomethingResult; public void run(){ //무언가 HTTP로 요청을 하고 응답을 받아서 . . . SomethingResult = Response.toString(); } //결과값 리턴해주는 Getter public String getResult(){ return this.SomethingResult; } } | cs |
메인 스레드에서는 .join(); 이용해 자식 스레드의 run이 끝날때를 기다린다.
(http요청을 한 후 응답을 받아오고 난후 리턴을 받아야 내가 원하는 값이 들어있을테니 기다려야하겠지)
1 2 3 4 5 6 7 8 9 10 11 | CustomChildThread ChildThread = new CustomChildThread(); Thread.start(); try{ ChildThread.join(); }catch(Exception e){ e.printStackTrace(); } String ResultFromChildThread = ChildThread.getResult(); | cs |
이렇게 하면 정상적으로 자식스레드와 싱크를 맞춰 리턴값을 받아올 수 있다.
참고: http://plaboratory.org/archives/108
'개발 > Java' 카테고리의 다른 글
for문 사용 방법 중 두번째 방법 (0) | 2018.06.19 |
---|---|
arraylist관련 (0) | 2018.06.15 |
Comments