JAVA13 [JAVA] 스레드의 동기화 - 1 스레드의 동기화 한 번에 하나의 스레드만 객체에 접근할 수 있도록 객체에 lock을 걸어서 데이터의 일관성을 유지하는 것 1. 메서드에 lock을 걸고자 할 때 public synchronized void calcSum() { } 2. 특정한 객체에 lock을 걸고자 할 때 synchronized(객체의 참조변수) { } 🌳 실습 public class ThreadTest16 { public static void main(String[] args) { ShareObject sObj = new ShareObject(); // 각각의 스레드가 하는 일은 각 객체의 add() 메소드를 10번 씩 호출하는 것이다. TestThread th1 = new TestThread("test1", sObj); TestTh.. 2021. 8. 3. [JAVA] 멀티 스레드 - 2 10초 안에 값 입력받고, 값을 입력 받았다면 프로그램 종료하기 🌳 싱글 스레드 이용하기 public class ThreadTest07 { public static void main(String[] args) { // 사용자로부터 데이터 입력 받기 // ==> 입력 값은 문자열로 처리된다. // ==> 입력 창에서 '취소' 버튼을 누르면 null 값이 저장된다. String str = JOptionPane.showInputDialog("아무거나 입력하세요."); System.out.println("입력한 값 : " + str); // 카운트다운처럼 보이는 반복문 for (int i = 10; i >= 1; i--) { System.out.println(i); try { Thread.sleep(1000);.. 2021. 7. 30. [JAVA] 데몬 스레드 데몬 스레드(daemon thread) - 일반 스레드의 작업을 돕는 보조적인 역할을 수행한다. - 일반 스레드가 모두 종료되면 자동적으로 종료된다. - 가비지 컬렉터, 자동저장, 화면자동갱신 등에 사용된다. - 무한루프와 조건문을 이용해서 실행 후 대기하다가 특정 조건이 만족되면 작업을 수행하고 다시 대기하도록 작성한다. ✔ boolean isDaemon() - 스레드가 데몬 스레드인지 확인한다. 데몬 스레드이면 true를 반환한다. ✔ void setDaemon(boolean on) - 스레드를 데몬 스레드로 또는 사용자 스레드로 변경한다. - 매개변수 on의 값을 true로 지정하면 데몬 스레드가 된다. - setDaemon(boolean on)은 반드시 start()를 호출하기 전에 실행되어야 한.. 2021. 7. 30. [JAVA] 하나의 스레드와 여러 개의 스레드가 수행되는 시간 비교하기 🌳 스레드가 수행되는 시간 확인해보기 1. Runnable 인터페이스를 구현한 class를 작성한다. class SumRunner implements Runnable { @Override public void run() { long sum = 0L; for (long i = 1L; i < 1_000_000_000L; i++) { sum += i; } System.out.println("합계 : " + sum); } 2. 메인 메소드를 작성한다. - join() 메소드를 이용한다. join() 메소드란? 현재 실행중인 스레드에서 대상이 되는 스레드(변수 th)가 종료될 때까지 기다리는 메소드 public class ThreadTest03 { public static void main(String[] arg.. 2021. 7. 30. 이전 1 2 3 4 다음