전체 글46 multi-thread 동기화(synchronization) critical section(임계영역) - 두 개 이상의 thread가 동시에 접근하게 되는 리소스 ciritical section에 동시에 thread가 접근하지 않게 하기 위해 동기화(synchronization) 필요 동기화(synchronization) - 임계영역에서 한 thread가 작업 수행중인 경우 lock을 걸어서 다른 thread의 접근을 막음. 주의) deadlock에 빠질 수 있음 (synchronized 메서드 내에서 다른 synchronized 메서드 호출하지 않기) 동기화(synchronization) 구현 - synchronized 메서드가 속한 객체에서 lock을 건다 2021. 9. 13. 자바 Thread Process - 프로그램이 OS로 부터 메모리를 할당받아 적재되면 프로세스 Thread - 실제 프로그램이 수행되는 작업의 최소 단위로, 하나의 프로세스는 하나 이상의 Thread를 가짐 - 하나의 프로세스 안에서 thread 2개가 동시에 돌아가는것처럼 보임 -> 멀티 쓰레드 - 쓰레드는 cpu를 점유해서 돌아감. 스케줄러가 쓰레드에 cpu를 할당을 해서 쓰레드가 수행되도록함. Thread 구현 - extends Thread - implements Runnable(자바에서는 상속 한번만 되기 때문에 이미 상속이 되어있을 때 사용) Multi-Thread 프로그래밍 - 동시에 여러개의 thread가 수행되는 프로그래밍 - thread는 context라는 각각의 작업공간을 가짐 -> thread가 스위치.. 2021. 9. 13. 제네릭 프로그래밍 * 제네릭 프로그래밍 자바에서 여러 자료구조와 알고리즘을 구현해놓은 라이브러리 변수 선언, 메서드의 매개변수를 여러 참조형을 변환해서 사용할 수 있고 이 변환은 컴파일러가 검증하므로 안정적이다. * 매개변수 T : T에 여러 참조 자료형을 넣을 수 있다. public class GenericTest{ private T anything; //어떤 자료형이든 올 수 있음. } * T타입 제한 타입들을 특정 abstract class로부터 상속받게 하여 자식클래스들만 T타입으로 사용가능하도록 할 수 있음. * 제네릭 메서드내에서의 자료형 매개 변수는 메서드 내에서만 유효 class Test{ public static String Test2(Hi hi1,Hi hi2){ } } Test T와 Test2의 T는 전.. 2021. 8. 26. String Buffer/ String Builder / 기본자료형에 대한 클래스 * String Buffer/ String Builder - 둘다 char[] 멤버변수를 가짐 - 문자열 변경과 연결시 사용하면 편리 - 멀티쓰레드상에서 동기화되는것은 String Buffer - 단일쓰레드 프로그래밍에서는 String Builder 사용 - toString() 메서드로 String 변환 * 기본자료형에 대한 클래스 기본형 Wrapper 클래스 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 2021. 8. 25. 이전 1 2 3 4 5 6 7 8 ··· 12 다음