[면접예상] 20230706

neul·2023년 7월 6일
0

면접예상

목록 보기
21/36
post-thumbnail

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

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);
		}
		
	}
	
}


class ThreadEx6 {
	public static void main(String[] args) throws Exception
	{
		Runnable r = new RunnableAccount();
		
		Thread t1 = new Thread(r,"첫번째");
		Thread t2 = new Thread(r,"두번째");
		
		t1.start();
		t2.start();

여러 스레드가 동시에 접근할 수 있는 잠재적인 문제로 인해, withdraw 메소드의 동기화 처리를 통해 스레드 충돌을 방지하려고 하지만, 잠시 멈추는 동안 다른 스레드가 접근할 수 있는 시간 창을 만들어서 balance가 음수로 감소하는 문제가 발생함

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

: 자바에서 쓰레드 동기화는 여러 개의 스레드가 공유 자원을 안전하게 사용하고 조율하기 위해 사용되는 메커니즘

🐬네트워킹 이란?

  • 컴퓨터 또는 장치들이 서로 통신하고 데이터를 교환하는 것
  • 두 대 이상의 컴퓨터가 논리적 또는 물리적으로 연결되어 통신이 가능한 상태

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

URLConnection
: URL을 통해 원격 리소스와의 연결을 관리하는 클래스

InetAddress
IP 주소와 호스트 이름에 대한 추상화된 표현을 제공하는 클래스

ServerSocket
: 서버 애플리케이션에서 클라이언트의 연결 요청을 수신하는 클래스

Socket
: 클라이언트와 서버 간의 네트워크 통신을 담당하는 클래스

🐬프로토콜이란?

: 통신규약 = 약속 = http, tcp, ip, ump, stmp, ftp,
(무선 : 5g, lte, 3g, CDMA)

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

TCP

  • 신뢰성 있는 연결 지향형 프로토콜
  • 데이터의 정확성과 순서를 보장

UDP

  • 연결형 프로토콜
  • 데이터의 신뢰성을 보장하지 않고 단순히 데이터그램을 전송하는 방식.
profile
🍙

0개의 댓글

관련 채용 정보