소프트웨어 개발/Java - Basic 41

자바 API를 이용한 쓰레드풀 생성 샘플소스. Executors.newFixedThreadPool() 이용 [출처] 자바 API를 이용한 쓰레드풀 생성 샘플소스. Executors.newFixedThreadPool()

http://blog.naver.com/lover4908/110039084541 바 1.5 버전 부터 쓰래드를 지원하기 위한 API가 강력해진거 같다. 모, 일단 라이브러리가 많이 늘어난거 같다. 래치, 배리어, 쓰레드풀 , 퓨처패턴 등등등...... 나중에 필요할때 써 먹을라고, 관련되는 녀석 공부하던중에 자바 1.5부터 지원되는 쓰레드풀 생성하는 아주작은 샘플을 만들어 보았습니당~ /** * */ package test;import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;/** * @author 이준성 * */ public class ThreadPoolTest { final static int THREAD..

Exception을 이용한 트랜잭션 익셉션 처리

//TransactionException클래스를 하나 만든후 public class TransactionManager { //private static Connection conn; //static은 오직 메모리에 하나만 있기 때문에 여러쓰레드에서 사용할경우 문제발생 //밑에것처럼 만들면, 하나의 흐름에서 하나의 쓰레드를 만들수 있다. private static ThreadLocal tlocal = new ThreadLocal(); public static void begin() throws TransactionException{ try{ Connection conn = DBUtil.getConnection(); conn.setAutoCommit(false); tlocal.set(conn); //이렇게 ..

사용자의 입력을 받아 클래스 만들기

Class.forName()을 사용하면 된다 String userNumber = "1";String className = "Child01" + userNumber;Class clazz = Class.forName(className); PERM에 올라간다그리고 난후 Object obj = clazz.newInstance();를 이용해 객체를 만들면 된다.그리고 다운캐스팅해서 쓰면된다. 이게 ClassLoader를 이용한 객체생성이다 안드로이드에서도 Activity를 상속한 놈들이 클래스로 돌아가게 되는데, 그 클래스이름은 사용자별로 제각각인데, 이 프레임워크들은 이러한 개념으로 만들어주는것이다. 따라서 나중에 프레임워크를 만들게 되면, 보통 이러한 동작원리로 작동한다.

layer별로 Exception다르게 하기

어디서 오류가 났는지 솔직히 힘들기 때문에, Exception을 차라리 BizException, DAOException이렇게 표시하기도 한다. 비즈니스 로직이 있는 곳에서 에러가 나면 해당하는 에러가 나기때문에 어디서 났는지 알수있다. 어떠한 Exception이 발생하든간에, catch(Exception e){ throw new DAOException(e)}이러한 형식으로 던져버리면, 해당하는 DAOException으로 던져지기 때문에, DAO에서 예외가 났다고 할수있다. 받아서 가공해서 다시 넘긴다고 할수있을듯다만 Exception 클래스에서는 public class DAOException extends RuntimeException{public DAOException(Exception ex){supe..

InputStream OutputStream에 관련

public static void main(String[] args) { //왜 io프로그래밍 순서가 중요하냐! close가 중요하기 때문이다. //현재 시간을 long으로 변환 long start = System.currentTimeMillis(); //첫번째는 io관련 객체를 선언함 InputStream in = null; OutputStream out = null; try{ //InputStream 이나 OutputStream의 자손중에서 주인공의 인스턴스가 나온다. //근데 1바이트씩 읽고 1바이트씩 쓰는건 오래걸린다. /*in = new FileInputStream("c:/temp/SDSProxy.exe"); out = new FileOutputStream("c:/temp/sdspp.exe");..