일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- java
- ui5
- 개발
- Fiori
- S/4HANA
- visual studio code
- python
- 자바 클래스
- 알고리즘
- FPM
- BOBF
- ABAP
- 맥북
- 자바
- tm
- Algorithm
- html
- Eclipse
- module
- sap
- 이클립스
- SAP 번역
- BOPF
- 클래스
- 백준 알고리즘
- udemy
- 파이썬
- BTP
- mac
- Deep Learning
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 연산자 (0) | 2023.01.13 |
---|---|
JAVA Class (연습) ATM 구현 (0) | 2023.01.12 |
JAVA 멀티스레드 (0) | 2023.01.11 |
JAVA의 Class (7) 오버로딩과 오버라이딩 (0) | 2022.12.28 |
JAVA의 Class (6) 클래스의 상속과 오버라이딩 (0) | 2022.12.28 |
Comments