ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HashMap, Thread (1/11)
    Java 2022. 1. 11. 21:53

    1/ HashMap

    Key, Value

    CRUD(put, get, put, remove)

     

    2/ Thread

    CPU가 워낙 작업속도가 빠르다보니, 다른 곳에서 데이터를 가져오면서 생기는 delay들이 있어. 자주 쓰는건 cache에서 가져오기도 하지만 메모리나 외부 디바이스랑 연결될때는 delay가 상대적으로 긴 시간 되는데, 그럴때 CPU에게 다른 작업을 하게 하는거지.

    그런 해야할 작업을 Thread라고 하고, 여러 thread가 있지.

    이 때 CPU가 작업이 끝나서 thread를 언제 실행시켜야할지는 개발자가 알 수 없고, OS에 맞는 JVM에서 알아서해줘.

    JVM에 의해서 생성된 thread가 실행대기장소로 감 > 실행하고 소멸 or 실행하다가 어떤 이유로 일시정지하고 다시 실행대기 > 실행 > 소멸

     

    코드

    test1) Thread를 상속받은 클래스에 run()을 override > 상속받은 클래스 객체화 > start()

    test2) Interface인 runnable을 implements한 클래스에 run()을 override > implements한 클래스 객체화 > Thread 객체화할때 (override한 run 사용할 수 있게) implements한 클래스를 arguments로 넣음. > start()

     

    private void test1() {
    	Thread1 t1 = new Thread1();//Thread 안에 run은 비어있음. 그래서 Thread1이 thread 상속받아서 run override햇음.
    	Thread2 t2 = new Thread2();
    	t1.start();
    	t2.start();
    }
    
    private void test2() {
    	//Runnable 객체를 이용한 쓰레드의 실행 코드 작성. Thread를 상속받지 않았을때.
    	//Runnable을 구현한 클래스를 만들고
    	//객체로 생성하여 Thread와 연결하세요.
    		
    	//객체 생성 
    	MyRunnable my = new MyRunnable();
    	YourRunnable your = new YourRunnable();
    	//Thread와 연결
    	Thread t1 = new Thread(my);	  //Thread 안에 run()는 비어있음. 그래서 argument 안 넣으면 아무것도 실행 안돼.
    	Thread t2 = new Thread(your); //your안에 run()을 실행함. 
    		
    	t1.start();
    	t2.start();
    }
Designed by Tistory.