본문 바로가기

WebStudy/JAVA

특수문자 공백 체크. Pattern, Matcher Pattern p = Pattern.compile("[a-z0-9]", Pattern.CASE_INSENSITIVE); // Pattern.CANON_EQ 대소문자 구분함. Matcher m = p.matcher(Character.toString(crtIn)); Character 가 공백인지를 체크. Character.isWhitespace(crtIn) [a-z0-9] 정규 표현식 편함. 특문 검색 후 제거 . if(m.find()){ // if(idx != -1){ char[] ch = this.jt.getText().toCharArray(); StringBuffer sb = new StringBuffer(""); for(char c : ch){ m = p.matcher(Character.toStrin.. 더보기
Thread (쓰레드) synchronized 동기화 -05 synchronized 를 걸어주지 않으면 작업이 끝나기전에 공유가 되어버려 예상할 수 없는 결과가 나온다. 이를 방지하기 위해 제공하는 기능이 동기화 synchronized 이다. consol 결과 ----- 3000000 ex------------------ public class ThreadCore_N07 { public static void main(String[] args) { Increment inc = new Increment(); IncThread it1 = new IncThread(inc); IncThread it2 = new IncThread(inc); IncThread it3 = new IncThread(inc); it1.start(); it2.start(); it3.start(); .. 더보기
Thread (쓰레드) 우선순위 양보 -3 public class Thread_E06 { public static void main(String[] args) { Thread[] t = new Thread[8]; for (int i = 0; i < 8; i ++) t[i] = new Thread(new GooGoo_Yield(i+2)); int n = 0; t[n++].setPriority(4); // 1~10 level로 우선권을 줄수 있으나 영향력은 사실 미미함.ㅣ t[n++].setPriority(4); t[n++].setPriority(4); t[n++].setPriority(4); t[n++].setPriority(10); t[n++].setPriority(4); t[n++].setPriority(6); t[n++].setPriority.. 더보기
Thread (쓰레드) Join() - 04 t5 가 끝나기전까지 main 을 종료시키지 않음. 결과 ------ 2 단 : 2 * 1 = 2 6 단 : 6 * 1 = 6 3 단 : 3 * 1 = 3 5 단 : 5 * 1 = 5 4 단 : 4 * 1 = 4 7 단 : 7 * 1 = 7 9 단 : 9 * 1 = 9 7 단 : 7 * 2 = 14 4 단 : 4 * 2 = 8 5 단 : 5 * 2 = 10 3 단 : 3 * 2 = 6 6 단 : 6 * 2 = 12 8 단 : 8 * 1 = 8 2 단 : 2 * 2 = 4 8 단 : 8 * 2 = 16 6 단 : 6 * 3 = 18 3 단 : 3 * 3 = 9 5 단 : 5 * 3 = 15 4 단 : 4 * 3 = 12 7 단 : 7 * 3 = 21 9 단 : 9 * 2 = 18 7 단 : 7 * 4 = .. 더보기
Thread (쓰레드 ) 우선권을 위한 Blocking Method -2 보통 입출력 (I/O)의 우선권이 가장 높다. Boocking 이란 동작중이던 쓰레드를 잠시 멈추는 것이고, 강제로 멈추게도 가능하다. 강제로 멈추는 이유는 Thread는 기본적으로 우선권 방식으로 실행되기때무넹 우선권이 낮은 경우 대기만 타고 있는 경우가 있다. 이런경우를 Starvationg (기아상태) 라고 하는데 이 경우에 사용하는 메소드가 Sleep() 이다. Thread.sleep(1/1000초); 형식으로 사용을 하고 시간 만큼 blocking 되는 것. 실행할때 마다 결과는 달라지지만 ( 왜냐면 random 함수를 써서 blocking 시간을 매번 다르게 했기 때문에) 실행결과를 보면 대기 시간이 각각 설정이 되고, 대기 시간이 짧은 것부터 실행되는 것을 알 수 있다. consol 결과 -.. 더보기