일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- Dict
- SpringBoot
- c#
- 객체
- JS
- Docker Desktop
- StringBuilder
- 프로그래머스스쿨
- 배열
- thread
- JavaScript
- 저장소
- synchronized
- class
- 클래스
- AssertJ
- 스프링부트
- Java
- SSL
- docker
- array
- 자바스크립트
- GIT
- 파이썬
- Python
- 자바
- event
- 메소드
- join()
- Swing
- Today
- Total
목록프로그래밍 (89)
정리노트
같은 자원에 동시에 접근하여 섞이는 것을 방지하기 위하여 동기화를 한다. package synchroPrint; /*class Printer {// 동기화 블록 사용 void print(int arr[]) { synchronized(this) { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } } }*/ class Printer {// 동기화 메소드 사용 synchronized void print(int arr[]) { for (int i = 0; i < arr.length..

thread의 개수보다 작업의 개수가 더 많은 경우에는 작업은 FIFO Queue에서 대기한다. Runnabel 객체를 구현하고 ThreadPoolExecutor로 보내기만 하면 됨. (ThreadPoolExecutor 는 thread로 실행하는 담당) thread가 새로 생성되는 시간을 절약하며 ThreadPoolExecutor는 thread가 계속 생성되는 것을 방지하기 위하여 몇 개의 thread를 미리 생성한 후에 pooling하여 사용한다. package threadPoolTest; import java.util.concurrent.Executors; import java.util.concurrent.ThreadPoolExecutor; public class ThreadPoolTest imple..

하나의 스레드가 다른 스레드의 interrupt()를 호출하면 해당 스레드는 중지된다. 이는 InterruptedException 로 예외처리를 하면 된다. package threadControl; import javax.swing.*; import java.awt.*; public class ThreadControl extends JFrame { private JLabel label; Thread t; class Counter extends Thread { public void run() { for (int i = 1; i t.interrupt()); // 버튼이 눌리면 interrupt() 실행 // 람다 getContentPane().add(button); setVisible(true); setDe..
sleep(long miliseconds) sleep(long miliseconds, int nanos) // 나노초 단위로 지정 package sleepTest; public class SleepTest { public static void main(String[] args) throws InterruptedException { String messages[] = { "A", "B", "C", "D"}; for (int i = 0; i < messages.length; i++) { Thread.sleep(4000);// 4초 간격 한 문장씩 출력 System.out.println(messages[i]); } } } package joinTest; public class JoinTest extends T..

package q11; import java.io.*; import java.util.*; public class Q11 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new FileReader("--경로입력--\\word.txt")); String str; ArrayList wordList = new ArrayList();// 파일내의 모든 단어를 리스트화, 추후 랜덤으로 단어 하나 선택 Random rd = new Random(); while ((str = br.readLine()) != null) { wordList.add(str); } String result = ..

확장명이 java 인 파일들의 이름을 출력 후 실행하고 해당 파일내에 class 라는 단어가 들어가는 해당 줄의 번호와 모든 글자를 출력. package q8; import java.io.*; import java.nio.*; import java.util.*; public class Q8 { public static void main(String[] args) throws IOException { Scanner sc; File file = new File("//파일경로입력-----------------q"); String fileNames[] = file.list(); String javaFile; int count; for (String str : fileNames) { String ext = str..
package q10; import java.util.HashSet; import java.util.Random; public class Q10 { public static void main(String[] args) { Random rd = new Random(); int num; HashSet lotto = new HashSet(); for (int i = 0; i < 6; i++) { num = rd.nextInt(1, 46); // 1 ~ 45 if (lotto.contains(num)) // 중복확인, i--로 총 6개의 숫자가 들어가도록 함. i--; else { lotto.add(num); } } System.out.println("result = " +lotto); } }