본문 바로가기

Eric112

[java] 스레드(Thread)[4] - 스레드의 상태(state) 제어 스레드는 생성부터 종료까지 여러 상태 값들을 가집니다. 스레드는 크게 4가지의 상태를 가집니다. 스레드의 상태 1. ready state : start() 메서드 호출부터 스케줄러가 run() 메서드를 시작하기까지의 상태입니다. 2. run state : 스레드가 ready state이고, 스케줄러가 run() 메서드를 실행시키면 해당 스레드는 run state 상태가 됩니다. 3. non-runnable state : run state상태인 스레드가 동작을 일시 정지한 상태입니다. non-runnable state에는 3가지의 상태(wating, sleeping, blocked)가 있습니다 3-1 : wating state : synchronized 메서드나 synchronized 블록에 의해 스레드가.. 2019. 7. 27.
[java] 스레드(Thread)[3] - 스레드 우선순위를 설정하는 방법 스레드를 여러개 제작하여 실행하면 여러 메서드를 병행적으로 실행할 수 있어서 프로세스의 성능을 높일 수 있지만, 스케줄러의 프로세스 실행 상황에 따라 예측 하기가 어렵습니다. 스레드가 먼저 시작했다고 우선순위를 가지는 것도 아니고, 먼저 시작한 스레드가 더 늦게 끝날 수도 있습니다. 또한 자원 상황에 따라 스레드가 실행되지 못하고 대기 상태로 남아있을 수도 있습니다. 그렇기 때문에 스레드의 중요도에 따라 우선순위를 정하는 것이 필요합니다. 하지만 이 스레드의 우선순위는 다중 cpu 환경, 또는 멀티코어 환경에서는 무의미합니다. 우선순위를 정하고 싶다면 join() 메서드를 사용하는 것을 권장드립니다 이 예제의 실행환경은 멀티코어 스레드이기 때문에, 실행 결과보다는 설정 방법을 확인하는 용도로 참고만 해주.. 2019. 7. 27.
[java] 스레드(Thread)[2] - Runnable을 이용하여 구현하는 방법 스레드를 만드는 방법 중 black-box 방법으로 알려진 Runnable 인터페이스를 구현하는 방법에 대해 알아보겠습니다. 스레드를 만드는 방법은 white-box방법과 black-box방법이 있습니다. white-box방법은 java.lang.Thread 객체를 extend하여 만드는 것이고, black-box 방법은 java.lang.Runnable 인터페이스를 implements 하여 만드는 것입니다. white-box방식으로 제작한 스레드는 컴파일 타임 시점에 형식이 결정되어 동적인 기능 변경이 불가능하다는 단점이 있습니다. 반면 스레드를 Runnable객체로 만들게 되면 스레드를 상속받아 만드는 white-box방식에 비해 어플리케이션의 유연성과 확장성을 보장받을 수 있게 됩니다. Runnab.. 2019. 7. 27.
[java] 스레드(Thread)[1] - run()과 start()의 차이 Thread란? 독립적으로 수행 가능한 메인 프로세스 또는 메인 프로세스 외의 기타 프로세스의 기저 입니다. 하나의 프로세스 내에서 실행하는 병행 메서드의 단위로, 어플리케이션의 스레드가 모두 종료되면 해당 어플리케이션이 종료됩니다. java 프로그램을 시작할 때 사용하는 main 메서드 또한 스레드입니다. Thread 생성 방법 Thread는 white-box방식과 black-box 방식으로 생성할 수 있습니다. white-box 방식 - java.lang.Thread 클래스를 상속받아서 생성하는 방식입니다. white-box thread example(run()) package example; public class ThreadTest extends Thread{ String name; public .. 2019. 7. 27.
sitemap 2019. 7. 26.
[Servlet] 웹 소켓을 이용한 채팅(update date - 2019-08-07) 2019-11-06 서버 운영을 종료하였습니다. 2019-08-07 패치노트 서버 프리징 개선 웹 채팅 커넥션을 다수 잡아놓고 동시에 여러 처리를 진행하게 만들면 서버가 멈추는 증상을 해결하였습니다. 아마존 웹 서버 우분투 프리티어를 사용하고 있었는데, EC2의 성능이 문제가 되었던거 같네요. 서버를 로컬로 바꾸고 다시 배포를 하니 일단 100명수준 내에서는 작동에 문제가 없습니다. 접속주소는 아래쪽에 갱신해 두었습니다! 서버 접속이 되지 않을때는 댓글 혹은 제 이메일로 연락 부탁드립니다. ======================================================================= 접속할 수 있는 주소 http://175.203.27.33/DevEricServers/d.. 2019. 7. 23.
[JSP] JSTL - Core import, url, out, redirect, catch Import HTML의 역할을 하는 JSTL이 있습니다. 바로 import인데요 include 태그와의 약간의 차이점이 있습니다. JSTL import는 contextPath를 포함하여 주소를 입력받지 않습니다. 즉 URI 패스만을 입력받습니다. 다음 예제와 같이 사용할 수 있습니다. 이번 예제에서는 JSTL - forEach편에서 만들어 놓았던 페이지를 import시켜주었습니다. /03/jstl_core3.jsp import 결과창 해당 페이지에 /03/jstl_core3.jsp 문서가 import된것을 확인할 수 있습니다. URL URL은 context path를 포함하여 저장하게 됩니다. 그렇기 때문에 따로 contextPath를 적지 않고 저장하면 됩니다. param 속성을 이용하여 파라미터를 넘.. 2019. 7. 22.
[JSP] JSTL Core - set, remove JSTL의 set, remove는 Scope(저장영역)에 값을 추가하거나 삭제할 수 있도록 해줍니다. 이러한 set, remove를 사용하게 된다면 더 이상 스크립트릿을 사용하지 않아도 JSTL을 사용하여 처리할 수 있도록 할 수 있게 됩니다. set의 사용 방법 - 스크립트릿을 사용하여 pageScope에 값을 저장하는 예제 - JSTL의 set을 이용하여 pageScope에 값을 저장하는 예제 scope : page, request, session, application 설정이 가능(default = page) var : 값을 저장할 key value : 저장할 값 제 이름은 ${name } 입니다. 결과창 remove 사용 방법 var : 지울 값의 key scope : 지울 값이 저장된 scope.. 2019. 7. 22.
[JSP] JSTL Core - if, choose JSTL의 if문의 사용 형식은 다음과 같습니다. 조건이 true일 경우 진행할 연산들... test : true 또는 false가 올 수 있습니다. if문의 조건식에 해당하는 속성입니다. JSTL의 IF문은 else문이 없기 때문에 사용하기에 불편함이 있습니다. 그렇기 때문에 if - else가 필요할 경우 choose - when 문을 사용할 수 있습니다. choose - when의 사용 형식은 다음과 같습니다. A B C D F if - else의 형식과도 같이 사용됩니다. test를 위에서 부터 읽다가, true가 나올 시 빠져나옵니다. 만약 when test에서 true가 없다면 otherwise를 실행시키게 됩니다. My Name devEric은 제 이름이 맞습니다! My Score 학점은 A.. 2019. 7. 22.