| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 경제공부
- 자바
- 탈잉
- ui5
- ABAP
- FPM
- module
- sap
- python
- Fiori
- 부업
- 맥북
- BOPF
- S/4HANA
- mac
- BTP
- 파이썬
- 이클립스
- 수익화
- 클래스
- 재테크강의
- 탈잉스크루지챌린지
- Eclipse
- tm
- 탈잉후기
- BOBF
- 알고리즘
- java
- visual studio code
- ETF
Archives
- Today
- Total
z2soo's Blog
JAVA 멀티스레드 (연습) 본문
반응형
To-do
1. main스레드에서는 두 개의 스레드를 만들어내서 작동시킨다. 그리고 최종 결과만 출력한다.
2. 스레드 작업내용
- 자신의 이름을 출력한다.
- 전역변수(static 데이터)에 랜덤한 숫자를 1개 누적시킨다.
- 작업이 끝나면 자신의 이름 + "작업 완료" 메시지를 출력한다.
3. static 데이터는 처음에 (0)으로 초기화되어 있어야 한다.
Key point
단점 : 스레드 사용시, 어떤 작업이 어떤 순서로 어떤 시점에 수행되는지 알 수 없어 사용하기 까다로움
장점 : CPU를 최대한으로 끌어서 사용할 수 있음
* 주로 네트워크 쪽에서 많이 사용한다.
Java Code
ThreadWork
package ThreadPack;
import java.util.Random;
public class ThreadWork implements Runnable {
//전역변수(공유데이터)>Threadwork 객체들 모두 다 접근 가능
static int shread_data=0;
public void run() {
System.out.println("["+Thread.currentThread().getName()+"]");
Random random = new Random();
int rand_num = random.nextInt(50000);
System.out.println("생성한 랜덤 숫자: "+rand_num);
shread_data+=rand_num;
System.out.println("["+Thread.currentThread().getName()+"작업끝!]");
}
}
ThreadPlay
package ThreadPack;
public class ThreadPlay {
public static void main(String[] args) throws InterruptedException {
Runnable work = new ThreadWork();
Thread t1 = new Thread(work);
Thread t2 = new Thread(work);
t1.setName("T1");
t2.setName("T2");
t1.start();
t2.start();
}
}
위의 코드를 실행하면 아래와 같이 출력된다.

반응형
'Programming > JAVA' 카테고리의 다른 글
| JAVA의 Class (8) Instanceof 연산자 (2) | 2023.01.13 |
|---|---|
| JAVA Class (연습) ATM 구현 (1) | 2023.01.12 |
| JAVA 멀티스레드 (0) | 2023.01.11 |
| JAVA의 Class (7) 오버로딩과 오버라이딩 (0) | 2022.12.28 |
| JAVA의 Class (6) 클래스의 상속과 오버라이딩 (1) | 2022.12.28 |
Comments