분류 전체보기 889

자바 스레드풀 ThreadPool : 스레드풀 생성과 스레드풀 종료

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드풀 : 작업 처리를 할 때 사용되는 스레드를 정해진 갯수만큼 정해놓은 뒤 작업 큐에 들어오는 작업들을 하나씩 스레드들이 맡아서 처리작업 처리가 끝난 스레드는 다시 작업 큐에 새로운 작업을 가져와 처리=> 작업 처리 요청이 엄청나게 늘어나도 스레드의 전체 갯수는 늘어나지 않습니다.==> 애플리케이션의 성능이 급격히 저하되지는 않게 됩니다~ 자바에서는 스레드풀 사용을 위해 ExecutorService Interface와 Executors Class를 제공합니다.Executors의 다양한 static method들을 이용해 Ex..

자바 2017.03.17

안드로이드 플로팅 액션 버튼 스피드 다이얼 floating action button speed dial 만들기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 이번 포스팅에서는 안드로이드 플로팅 액션 버튼 스피드 다이얼 만드는 법에 대해 알아보겠습니다.안드로이드 머터리얼 디자인 사이트에서는 스피드 다이얼에 대해 설명하고 있지만, 실제 구현하는 코드에 대해서는 나와있지 않습니다. 그리고 스택오버플로우에서도 스피드 다이얼은 사용자가 알아서 구현을 해야한다고 하더라구요 ㅎㅎ그래서 이미 라이브러리를 만들어 배포하시는 분들이 있었지만, 정상적으로 사용이 안되더라구요 그래서 유튜브 영상을 보며 구현을 해보았고 저와 같은 고민을 했던 다른 분들께 도움이 되고자 이 포스팅을 올립니다 ^^ 가장 먼저..

안드로이드 2017.03.17

안드로이드 확장 리스트뷰 ExpandableListView 사용법 - 중첩 리스트 뷰

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 안드로이드 확장 리스트 뷰 => ExpandableListView => 중첩 리스트뷰에 대해 알아보겠씁니다^^아래 사진처럼 리스트뷰 안에 또 다른 리스트 뷰가 있는 구조의 리스트 뷰를 확장 리스트뷰 즉, ExpandableListView라고 합니다.필요한 xml은 ExpandableListView를 선언할 xml + 부모의 아이템이 될 parent_row.xml 그리고 부모 아이템을 선택했을 떄펼쳐지게 될 child_row.xml 입니다. 그리고 필요한 자바 파일은 MainActivity.java, 그리고 Adapter.java..

안드로이드 2017.03.17

안드로이드 ListView 리스트뷰 item 아이템 터치가 안될 때, setOnItemClickListener가 안먹힐 때

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 안드로이드 ListView를 사용하다 보면 setOnItemClickListener가 정상적으로 동작하지 않을 때가 있습니다. 네... 바로 제가 어제 그랬습니다 ㅎㅎ 제대로 동작하지 않는 이유는 여러가지가 있겠지만 대표적으로, 아래 코드처럼 ListView의 아이템으로 들어가는 xml에서 Button이나 ImageButton이 있으면 포커스를 이놈들이 가져가서아이템 클릭 리스너가 제대로 동작하지 않을 수 있다고 하네요~ 해결방법은 Button대신 TextView로 ImageButton 대신 ImageView로 대체하면 ↓ se..

안드로이드 2017.03.16

JAVA Thread 자바 스레드 : 스레드 그룹 이름 얻기 / 스레드 그룹 생성 / 스레드 그룹의 일괄 inerrupt() /// 스레드 그룹 생성 / 스레드 그룹의 일괄 inerrupt()

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드 그룹 관련된 스레드를 묶어서 관리할 목적으로 이용됩니다. JVM이 실행되면 system 스레드 그룹을 만들고 JVM운영에 필요한 스레드들을 생성해서 system 스레드 그룹에 포함시킵니다. 그리고 system의 하위 스레드 그룹으로 main을 만들고 메인 스레드를 main 스레드 그룹에 포함시킵니다. 스레드는 반드시 하나의 스레드 그룹에 포함되는데 명시적으로 스레드 그룹에 포함시키지 않으면 기본적으로 자신을 생성한 스레드와 같은 스레드 그룹에 속하게 됩니다. 일반적으로 작업 스레드는 대부분 main 스레드가 생성하므로 기..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 데몬 스레드

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 데몬 스레드 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드.주 스레드가 종료되면 데몬 스레드는 강제적으로 자동종료됩니다. 데몬 스레드는 주 스레드가 종료되면 강제로 종료된다는 것만 제외하면일반 스레드와 별다른 차이가 없습니다. 데몬 스레드 적용 예)워드 프로세서의 자동 저장, 미디어 플레이어의 동영상 및 음악 재생, 가비지 컬렉터 등등. 이 기능들은 주 스레드가 종료되면 같이 종료됩니다. 스레드를 데몬으로 만들어주려면 주 스레드가 데몬이 될 스레드의 setDaemon(true)를 호출하면 됩니다. public stat..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 스레드의 안전한 종료 stop플래그, interrupt()

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드의 안전한 종료 stop플래그, interrupt() 스레드는 자신의 run() 메서드가 모두 실행되면 자동적으로 종료됩니다.경우에 따라 실행 중인 스레드를 즉시 종료할 필요가 생길 수 있습니다. 예를 들면 동영상을 끝까지 보지 않고 사용자가 멈춤을 요구할 경우가 있을 수 있습니다. Thread는 스레드를 즉시 종료시키기 위해 stop()메서드를 제공하지만 이 메서드는 Deprecated되어있습니다. =>아래 두가지 방법은 스레드를 즉시 종료시키기 위한 최선의 방법입니다. stop 플래그를 이용하는 방법 스레드는 run()..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 상태 제어 - 주어진 시간동안 일시 정지 sleep() / 다른 스레드에게 실행 양보 yield() / 다른 스레드의 종료를 기다림 join() / /// 스레드 간 협업 wait(), notify(), notifyAll()

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 주어진 시간동안 일시 정지 sleep() 실행 중인 스레드를 일정 시간 멈추게 하고 싶을 때는 Thread 클래스의 static 메서드인 sleep() 을 사용하면됩니다. 아래와 같이 Thread.sleep() 메서드를 호출한 스레드는 주어진 시간 동안 일시 정지 상태가 되고 다시 실행 대기 상태로 돌아갑니다.try{ Thread.sleep(1000);}catch(InterruptedException e){ //interrupt() 메서드가 호출되면 실행}매개 값에는 일시 정지 시키고 싶은 시간 만큼 1000분의1초 단위로 값을..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 스레드(Thread) 상태 /// 스레드 상태 제어(0)

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드(Thread) 상태 스레드 객체를 생성하고 start() 메서드를 호출하면 실행 대기 상태가 됩니다. 실행 대기 상태 : 아직 스케줄링이 되지 않아서 실행을 기다리고 있는 상태실행 상태 :실행 대기 상태에 있는 스레드 중에서 스레드 스케줄링으로 선택된 스레드가 비로소 CPU를 점유하고 run()메서드를 실행합니다.실행 상태의 스레드는 run() 메서드를 모두 실행하기 전에 스레드 스케줄링에 의해 다시 실행 대기 상태로 돌아갈 수 있습니다. 실행 대기 상태에 있는 다른 스레드가 선택되어 실행 상태가 됩니다. 이처럼 스레드는..

자바 2017.03.15

JAVA 자바 Thread 자바 스레드 : 스레드 우선순위 /// 동기화 메서드와 동기화 블록

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 스레드 우선순위 멀티 스레드는 동시성 Concurrency or 병렬성 Parallelism 으로 실행됩니다. 동시성은 멀티 작을 위해 하나의 코어에서 멀티 스레드가 번갈아가며 실행하는 성질을 말하고,병렬성은 멀티 작업을 위해 멀티 코어에서 개별 스레드를 동시에 실행하는 성질을 말합니다. 싱글 코어 CPU를 이용한 머리 스레드 작업은 번갈아가며 실행하는 동시성 작업입니다. 번갈아 실행하는 것이 워낙 빠르다보니 병렬성으로 보일 뿐입니다. 스레드의 개수가 코어의 수보다 많을 때, 스레드를 어떤 순서에 의해 동시성으로 실행할 것인가를..

자바 2017.03.15