[자바] Thread Safety란? Thread Safety를 보장하는 방법은 다양하다.하지만 간단하게 핵심적인 몇가지만 적어보고자 한다. 1. immutable 불변하는 객체는 무조건 Thread safety하다. 예_) String 2. only-read : 읽기만 하면 Thread safety 하다. 3. mutable -> 이 경우에는 thread safe하게 만들기 위해 동기화 작업이 필요=> 읽기 작업과 쓰기 작업을 분리시키면 동기화 영역이 줄어든다. => 이러한 패턴을 Producer-consumer 패턴이라고 부르며 서버 사이드에서 이렇게 작동한다. 용어정리) "안정성" => 반드시 의도한대로 동작한다. safety "성능" -> 의도한 시간내에 요청 처리 프로그래밍/자바 2019. 1. 30. 15:24
[자바] 멀티쓰레드 Runnable과 Callable 사용방법 멀티쓰레드를 사용할때는 가장 중요한게 CPU 사용율을 높이더라고 소요시간이 낮은걸 택하면서 코딩을 해야한다. 멀티쓰레드의 핵심은 여러개를 실행시켜 속도를 향상시키는것이다(병렬).만약 멀티쓰레드를 사용했음에도 불구하고 직렬처리와 같다면 옳지 못한 방법이다. 직렬방식은 지양해야 한다. 보통 잘 만든 프로그램은 혼자 작동할때 CPU 성능을 70~80% 유지한다.프로그램은 Runnable과 Callable 둘다 만들수 있다. 하지만 무엇을 선택해서 만들지는 잘 생각해보고 만들어야한다. Runnable은 리턴값이 존재하지 않기 때문에 주로 공유객체를 사용할때 사용한다. 편리하지만 공유객체를 만들어야한다는 단점이 있다. Callable은 리턴값이 존재하기 때문에 공유 객체를 사용하지 않는다는 장점이 있지만 Runn.. 프로그래밍/자바 2019. 1. 28. 18:14
[JAVA] 쓰레드풀(ThreadPoolExecutor) 정리 메인(main)스레드: 모든 자바 프로그램은 메인 스레드가 main() 메소드를 실행하면서 시작된다.: 코드의 실행 흐름 -> 스레드: main 메소드에서 return 문을 만나면 실행이 종료된다,: JVM이 메인 스레드를 만듬 : main스레드는 작업 스레드들을 만들어서 병렬로 코드를 실행할수 있다.=> 멀티 스레드를 생성해서 멀티 태스킹을 수행한다. 프로세스의 종료싱글 스레드; 메인 스레드가 종료하면 프로세스도 종료된다.멀티 스레드 : 실행중인 스레드가 하나라도 있다면, 프로세스는 종료되지 X=> 메인 스레드가 작업 스레드보다 먼저 종료되더라도 작업 스레드가 계속 실행중이라면프로세스는 종료되지 않음=> 멀티스레드일 경우 모든 스레드가 종료 되어야지 멈춤 스레드 풀 스레드 폭증1: 병렬 작업 처리가 많.. 프로그래밍/자바 2019. 1. 27. 21:00
[JAVA] 자바 Thread 만들기 ( extends Thread) 자바 Thread를 만드는 방법은 크게 두가지가 있습니다.1) extends Thread2) implements Runnable 오늘은 Thread를 상속해서 만드는 방법을 포스팅하겠습니다. 1. 쓰레드를 만들 class 파일을 하나 만들고 다음과 같이 코딩 12345678910111213141516171819202122232425262728293031 public class MyThread1 extends Thread { String str; public MyThread1(String str) { this.str = str; } @Override public void run() { // TODO Auto-generated method stub for(int i=0;i 프로그래밍/자바 2018. 8. 29. 22:44