23.07.06

OH オハ~~~オッス!!·2023년 7월 6일
0

1.아래의 소스코드에서 음수 값이 나오는 이유를 설명하시오.

class Account2{
int balance = 1000;
public synchronized void withdraw(int money) {
if(balance >= money) {
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
balance = balance - money;
}
}
}
class RunnableAccount implements Runnable{
Account2 acc = new Account2();
@Override
public void run() {
//1000 700 400 100
while(acc.balance > 0) {
// 100, 200, 300중의 한 값을 임으로 선택해서 출금(withdraw)
int money = (int) (Math.random() 3 + 1) 100;
acc.withdraw(money);
System.out.println("::balance:" + acc.balance);
}
}
}
Runnable r = new RunnableAccount();
Thread t1 = new Thread(r,"첫번쨰");
Thread t2 = new Thread(r,"두번쨰");
t1.start();
t2.start();
}
}
}

synchronized : 동기화

  • 마이너스가 되는 원인

    멀티스레드의 문제점이 발견, balance(잔액) thread-safe가 되지 않았기 때문에 t1 스레드가 잔액을 삭감하기 전에
    t2가 balance(잔액)에 접근해 삭감을 해버리고 다시 t1이 slee()에서 깨어나 balance(잔액) 을 삭감해버리기 때문에 잔액이 0 이하의 마이너스 값이 발생된다.

  • 해결 방법 : synchronized 키워드를 리턴타입 앞에 붙여주면 된다.
    t1스레드가 먼저 공유데이터나 메서드에 점유하고 있는 상태인 경우 block으로 처리하기 때문에 t1 이외의 스레드의 접근을 막는다.
    t1스레드가 작업을 다 끝냈다면 .unblock으로 처리하여 t1 이외의 스레드의 접근을 허락

2. 자바에서 쓰레드 동기화에 대하여 설명하시오.

두 개 이상의 쓰레드가 공유하는 데이터에 대한 접근을 제어하는 기법

3. 네트워킹 이란?

컴퓨터 네트워크를 통해 서로 통신하는 기능을 구현하는 것을 의미. 네트워킹은 클라이언트와 서버 간의 데이터 교환, 원격 제어, 파일 공유 등 다양한 기능을 수행할 수 있게 함

4. 아래의 객체를 설명하시오.

  • URLConnetion : URL을 통해 웹 리소스에 접근하고 데이터를 읽고 쓰는 클래스
  • InetAddress : IP 주소를 표현하고 조작하기 위한 클래스, DNS를 통해 IP주소 변환및 정보
  • ServerSocket : 서버용 소켓. ServerSocket을 사용하여 클라이언트의 연결 수락
  • Socket : 클라이언트용 소켓. 서버에 연결하기 위해 사용

5. 프로토콜이란?

통신 규약으로, 네트워크를 통해 통신하도록 규칙을 정해 놓은 것. 네트워킹에서 자주 사용되는 프로토콜로는 TCP/IP, HTTP, FTP, SMTP, POP3 등이 있음

6. TCP, UDP 에 대하여 설명하시오.

TCP : 상호 연결이 되어야 동작함.
신뢰성이 높음(확인 응답, 재전송, 순서 보장 등의 기능을 제공)
흐름 제어, 혼잡 제어를 위해 데이터 전송 속도를 조절하고 네트워크 혼잡을 방지
웹 브라우저, 이메일, 파일 전송 등 신뢰성이 중요한 애플리케이션에서 사용
연결 시에는 3-way handshake, 연결 종료 시에는 4-way handshake를 한다.
상대적으로 느림(그래도 빠름)

UDP : 연결없어도 동작함
신뢰성이 낮음(응답, 재전송, 순서 보장 등의 기능이 없음)
연결이 없어도 동작하기 때문에 상대적으로 빠름
데이터 송신시 손실이 발생해도 괜찮은 스트리밍, 실시간 멀티미디어, DNS 등에서 사용
상대적으로 지연이 없음

profile
現在俺の人生(時間)は暗記だ!暗記だけが道だ!!

0개의 댓글

관련 채용 정보