Java
자바 스레드 (Thread) 연습문제 1
연수
2020. 8. 27. 18:24
자바 스레드 (Thread) 연습문제 1:
2명의 사람이 있습니다.
사람은 각각 랜덤 1~20까지의 수를 1턴마다 가집니다.
턴은 총 100턴이고, 100턴을 모두 돌고 난 후,
1턴마다 사람이 가진 수를 모두 더했을 때, 누가 더 큰수를 가지고 있는지 스레드를 통해 코드를 짜보세요.
저는 마지막에 결과를 출력해주기 위해 join();을 썼습니다.
스레드 클래스는 스레드 클래스로부터 직접 상속받아 원하는 스레드를 생성하는 방법을 사용했습니다.
package Twentyfive;
import java.util.Random;
class User extends Thread
{
int result;
public User(String str)
{
setName(str);
}
public void run()
{
result = 0;
for (int i = 1; i <= 100; i++)
{
Random r = new Random();
int x = r.nextInt(20)+1;
System.out.println(getName() + ": " + x);
result += x;
}
}
}
public class Threadpracticequestion1 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
User u1 = new User ("User1");
User u2 = new User ("User2");
u1.start();
u2.start();
u1.join();
u2.join();
System.out.println("***** User1의 값: " + u1.result + " *****");
System.out.println("***** User2의 값: " + u2.result + " *****");
if(u1.result>u2.result)
{
System.out.println("User 1의 합이 더 큽니다.");
}
else if(u1.result<u2.result)
{
System.out.println("User 2의 합이 더 큽니다.");
}
else
{
System.out.println("두 수의 합이 같습니다.");
}
}
}
콘솔에 나타나는 결과값: