반응형

혼자의 세상 *^^* 448

wait(), notify(), notifyAll()

- 동기화와 wait(), notify()-> 데이터의 동기화와 관련해 쓰레드를 미세하게 제어하는 메서드=> wait() : 쓰레드를 Not Runnable 영역으로 보냄=> notify(), notifyAll(), : wait() 에 의해 Not Runnable영역으로 보내진 쓰레드를 Runnable영역으로 보냄=> synchronized 선언된 곳에서 사용 ================================================================================================================= import java.util.Vector; class SyncStack{private Vector buffer = new Vector();pub..

clone()

clone()- clone()의 기능-> 메모리를 복사하는 메서드-> protected native Object clone() throws CloneNotSupportedException-> 객체는 참조를 기본으로 함. clone() 의 사용 방법(1)- 아들 클래스에서 재정의 해서 사용- Cloneable interface를 구현- Cloneable interface : 표시 인터페이스(구현할 메서드 없음) ========================================================================================================== class FirstClone implements Cloneable{public int count = 0;p..

finalize()

- finalize()-> 필요없는 메모리를 삭제하는 메소드-> protected void finalize() throws Throwable-> Garbage Collector 가 호출-> 사용자가 호출 시 실행 된다는 보장 없음. ================================================================================================================== public class FinalizeTest {public static void main(String[] args) throws Throwable {FinalizeTest ft1 = null;FinalizeTest ft2 = new FinalizeTest();System...

hashCode()

- hashCode()의 기능과 사용 예제-> hashCode()=> hash code value를 int형으로 반환=> public native int hashCode()=> hash code value : 객체가 가지는 유일한 참조값=> 객체의 메모리를 비교할 때 사용 ================================================================================================================= import java.util.Date; public class HashCodeTest { public static void main(String[] args) {System.out.println("new Date() : " + new..

toString()

- toString()의 기능-> toString()=> 클래스의 요약 정보 출력 용도=> public String toString()=> 주로 재정의를 해서 사용=> String, Vector, array 등 여러 클래스에서 재정의 되어있음.=> 객체 자체를 출력하면 객체의 toString() 메서드 호출 ================================================================================================================== class EqualsOverride{private String name;private int id;public EqualsOverride(String name, int id) {// TODO Au..

equals()

- equals()의 기능-> equals()=> 객체를 비교하는 메서드=> public boolean equals(Object obj)=> 객체의 참조 값을 비교함=> 재정의를 해서 사용함=> 재정의해서 사용할 경우 객체의 내용(값)을 비교함=> 사용자가 원하는 내용을 재정의해서 비교할 수 있음.-> '==' 연산자=> 객체의 값을 비교함.-=> Vector v = new Vector();Vector v1 = new Vector();v.addElement("javaok");v1.addElement("javaok");System.out.println(v.euals(v1));System.out.println(v==v1); ===============================================..

Multi Thread(멀티쓰레드)

Multi Thread?- Multi-Processing-> 여러 개의 CPU에서 동시에 여러 개의 프로세스가 수행-> ex) Dual CPU- Multi-tasking-> 하나의 CPU에서 동시에 둘 이상의 작업을 수행-> ex) 한글을 사용하면서 동시에 웹 브라우저를 실행시킴- Multi-Threading-> 하나의 프로세스 내에서 여러 개의 쓰레드가 작업을 수행-> ex) 스타크래프트를 하면서 정찰과 자원획득, 건물 건축을 동시에 수행=> 모든 활동들이 하나의 쓰레드로 작동함 - 필요성-> 동시에 두 가지 이상의 작업을 수행하기 위하여=> 동시에 for문을 2개 이상 실행해야 할 때- 문제점-> 여러 개의 쓰레드가 하나의 자원을 동시에 사용할 때 발생=> 자료를 동시에 요청할 때 bottleneck..

Thread Join - 쓰레드가 작동할 경우 끝날 때까지 기다려주고 다음 명령문을 실행.

Join- 자바의 쓰레드가 끝날때까지 기다려주는 join() 메소드-> 자바의 쓰래드는 게임과 네트워크 프로그래밍에서 중추적인 역할을 담당-> 쓰레드가 끝날 때까지 기다려줌. ============================================================================================== public class AddThread extends Thread{int a;int b;int sum;public AddThread(int x, int y) {// TODO Auto-generated constructor stuba = x;b = y;}@Overridepublic void run() {// TODO Auto-generated method stubf..

Runnable, NotRunnable, Dead

Runnable - Runnable 인터페이스를 구현-> run() 메소드를 반드시 재정의해야 함.-> run() 메소드를 재정의한 클래스를 Thread클래스의 매개변수로 삽입 ================================================================================================================= import java.awt.Frame; class SoloFrame extends Frame implements Runnable{private int number = 0;public SoloFrame(int n) {// TODO Auto-generated constructor stubnumber = n;Thread t = new..

반응형