1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package MultiThread;
import java.awt.Toolkit;
//방법 1 - 이게 조금 더 효율적.
//Thread 생성자 호출 시 Runnable 익명 객체를 매개값으로 사용 가능.
//Runnable 인터페이스에는 run 이라는 메소드 존재한다.
public class BeepTask implements Runnable{
@Override
public void run() {
Toolkit toolkit = Toolkit.getDefaultToolkit();
for(int i=0;i<5;i++) {
toolkit.beep();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package MultiThread;
public class BeepPrintExample2 {
public static void main(String[] args) {
//BeepTask 객체 생성, 이것을 매개값으로 해서 작업 스레드 생성.
Runnable beeptask = new BeepTask();
Thread t = new Thread(beeptask); //얘가 작업스레드.
t.start();
for(int i = 0;i<5;i++) {
System.out.println("띵");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package MultiThread;
import java.awt.Toolkit;
/*
* 작업 스레드가 실행할 작업을 Runnable로 만들지 않고 Thread의 하위 클래스로 사용하는 방법.
* Thread 클래스 상속받은 후 run 메소드 재정의 해주면 된다.
* 조금 더 비효율적임
*/
public class BeepThreads extends Thread{
//alt+shit+s+v
@Override
public void run() {
Toolkit toolkit = Toolkit.getDefaultToolkit();
for(int i =0; i<5 ; i++) {
toolkit.beep();
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package MultiThread;
public class BeepPrintExample3 {
public static void main(String[] args) {
Thread t = new BeepThreads();
t.start();
for(int i = 0;i<5;i++) {
System.out.println("띵");
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
|
cs |
<더하기와 곱하기 동시에 수행 (멀티스레드 사용)>
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
|
package MultiThread;
public class PlusMultiExample {
public static void main(String[] args) {
Runnable plusthread = new PlusThread();
Thread t = new Thread(plusthread); //작업스레드
t.start();
int result = 1;
for(int num = 1; num <= 10; num++) {
try {
Thread.sleep(600);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int pastResult = result;
result *= num;
System.out.println(pastResult + " * " + num + " = " + result);
}
System.out.println("1부터 10까지 곱한 결과값 : " + result);
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
package MultiThread;
public class PlusThread implements Runnable{
@Override
public void run() {
int sum = 0;
for(int num = 0; num <= 10; num++) {
try {
Thread.sleep(600);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int pastResult = sum;
sum += num;
System.out.println(pastResult + " + " + num + " = " + sum);
}
System.out.println("1부터 10까지 더한 결과값 : " + sum);
}
}
|
cs |
'Language > JAVA' 카테고리의 다른 글
Collector / Collection FrameWork (0) | 2021.12.12 |
---|---|
베타테스트 문제 (0) | 2021.12.10 |
Interface (0) | 2021.11.04 |
조회 프로그램 (0) | 2021.10.12 |
완전탐색 (0) | 2021.10.03 |