일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Linux세팅
- 아이디중복
- ThreadGroup()
- String char[] 형변환
- MemoryStream
- 상관 서브 쿼리
- 스레드그룸
- Daemon()
- include 지시자
- Linux셋팅
- include액션태그
- interrupted()
- StringWriter
- 메모리스트림
- 상관서브쿼리
- ID중복
- 리눅스셋팅
- 리눅스세팅
- interrupt()
- InputDialog
- first-of-child
- char[] String 형변환
- first-child
- 표현 언어
- 동기화
- sleep()메소드
- ObjectInputStream
- include지시자
- StringReader
- isinterrupted()
- Today
- Total
목록Java (49)
다연이네
서버 package days28; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket; import java.net.SocketAddress; import java.ut..
InetAddress 클래스 자바에서 자바에서는 IP주소를 다루는 클래스를 제공하는 클래스 package days28; import java.net.InetAddress; import java.net.UnknownHostException; public class Ex01 { public static void main(String[] args) { InetAddress local; //getHostAddress() : IP주소를 반환하는 메소드 //getAllByName() : 도메인명을 가지고 IP[] 반환 try { local = InetAddress.getLocalHost(); //로컬PC의 주소 정보를 반환하는 메소드 getLocalHost() System.out.println("> 내 컴퓨터의 I..
스레드 그룹(ThreadGroup) 1. 서로 관련된 스레드를 그룹으로 다루기 위한 것이다. 2. 스레드 그룹 안에 스레드 그룹을 포함시킬 수 있다. 3. 보안상의 이유로 스레드 그룹 개념이 도입되었다. 4. 자신이 속한 스레드 그룹이나 하위 스레드 그룹은 변경할 수 있으나, 다른 스레드 그룹의 스레드를 변경할 수 없다. 5. 모든 스레드는 스레드 그룹에 포함되어 있어야 한다. 6. JVM -> main(main), system(가비지콜렉터) (이제껏 t1, t2 만든것들도 main스레드 그룹에 속한다) 데몬스레드(Daemon) 1. 다른 일반 스레드의 보조 역할을 하는 스레드이다. 2. 일반 스레드가 종료되면 강제로 데몬 스레드도 종료된다. 3. 일반 스레드를 실행하기 전에 (start) ...setD..
동기화 멀티스레드 프로세스의 경우 여러 스레드가 같은 프로세스의 자원을 공유해 작업하기 때문에 서로의 작업에 영향을 주게 된다. 스레드A가 작업하던 도중에 다른 스레드B에게 제어권이 넘어갔을 때, 스레드A가 작업하던 공유자원을 스레드B가 임의로 변경한다면, 다시 스레드A로 제어권이 넘어가 작업을 마쳤을 때 의도했던 것과 다른 결과를 얻게 된다. 따라서 스레드가 특정 작업을 끝마치기 전까지 다른 스레드에 의해 방해받지 않도록 하는 것이 필요하다. 한 스레드가 진행중인 작업을 다른 스레드가 간섭하지 못하도록 막는 것이다. 이용 방법 1) 메소드 전체를 임계 영역으로 지정 public synchronized void calcSum(){ } 2) 특정 영역을 임계 영역으로 지정 synchronized (객체의 ..
스레드 강제 종료 방법 1. 플래그 변수 사용 (Stopped 필드만 사용) package review; import java.io.IOException; public class Re02 { public static void main(String[] args) throws IOException { TerminatThread th1 = new TerminatThread('a'); TerminatThread th2 = new TerminatThread('b'); TerminatThread th3 = new TerminatThread('c'); th1.setName("a"); th2.setName("b"); th3.setName("c"); th1.start(); th2.start(); th3.start(); ..
package days26; public class Ex09 { public static void main(String[] args) { //문제 - 동기화 // 이름을 출력하는 스레드 선언: PrintWorker // 이름을 출력하는 클래스: PrintMachine (기계는 1대라서 모든 스레드가 공유해서 사용) 공유자원 PrintMachine machine = new PrintMachine(); //머신1대(공유자원) PrintWorker t1 = new PrintWorker("배다연", machine); PrintWorker t2 = new PrintWorker("김동준", machine); PrintWorker t3 = new PrintWorker("남도산", machine); PrintWorke..
- 독립적인 2개의 스레드 package days26; import javax.swing.JOptionPane; public class Ex06_02 { public static void main(String[] args) { Runnable target = new InputThread(); Thread t1 = new Thread(target, "t1"); t1.start(); ForThread t2 = new ForThread(); t2.setName("t2"); t2.start(); System.out.println(Thread.currentThread().getName()+" =END="); //실행하면 main만나 창 띄우고 t1스타트-> main죽고 t1입력받을때까지 멈춰있으나 t2는 독립적이..
1. 프로세스 - 실행 중( OS로부터 실행에 필요한 자원(메모리)을 할당받아 )인 프로그램 - 프로세스 = 자원(메모리)+스레드 - 모든 프로세스는 최소한 1개 이상의 스레드가 존재 - 2개 이상 스레드가 존재하면 -> 멀티스레드 프로세스 2. 스레드 프로세스의 자원을 이용해서 실제 작업을 수행하는 것 3. 멀티태스킹 OS 차원의 여러 프로그램을 동시에 실행 ,자동으로 프로세스를 관리 4. 교착상태(deadlock) 1) A가 화장실 들어가서 죽었는지 어쨌는지 안나옴 2) 두 스레드가 자원을 점유한 상태에서 서로 상대편이 점유한 자원을 사용하려고 기다리느라 진행이 멈춰있는 상태 스레드 사용해보기 - 장보기/대청소 출력은 CPU마다 다르며, 순서가 뒤죽박죽이다. 파일 복사하기 - 스레드 사용 packag..