일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- array
- WebXR
- WebVR
- JS
- aframe
- 상태관리
- 3d
- Component
- vuex
- javscript
- CI/CD
- Node
- bootstrap
- vue
- Three.js
- PHP
- EM6
- vue-template-compiler
- promise
- web
- PDO
- version mismatch
- vuetify
- VR
- JavaScript
- npx
- A-Frame
- AR
- auth0
- package-lock.json
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