자바 스 레 드 생 성 및 휴면
4.567917.1.프로 세 스 는 시스템 배분 자원 의 최소 단위 이다.스 레 드 는 시스템 스케줄 링 의 최소 단위 이다
Thread 클래스 를 계승 하여 스 레 드 생 성(2 가지 쓰기)
1 가지 표기 법
public class ThreadDemo03 {
static class MyThread extends Thread{
@Override
public void run(){
System.out.println(" :" +
Thread.currentThread().getName());
}
}
public static void main(String[] args) {
//
Thread t1 = new MyThread();
//
t1.start();
System.out.println(" ( ):" +
Thread.currentThread().getName());
}
}
2 가지 표기 법
public class ThreadDemo04 {
public static void main(String[] args) {
Thread thread = new Thread(){
@Override
public void run() {
System.out.println(" :" +
Thread.currentThread().getName());
}
};
thread.start();
}
}
Thread 류 의 생 성 방식 을 계승 하 는 단점:자바 언어 디자인 에서 단일 계승 만 가능 하고 Thread 류 를 계승 하면 다른 종 류 를 계승 할 수 없 기 때문에 이런 생 성 방식 은 개발 에 사용 된다.3.Runnable 인 터 페 이 스 를 실현 하 는 방식(3 가지)
자바 에 서 는 다 중 계승 이 불가능 하지만 다 중 인터페이스 가 가능 합 니 다.
1 가지 방법
public class ThreadDemo05 {
static class MyRunnable implements Runnable{
@Override
public void run() {
System.out.println(" :" +
Thread.currentThread().getName());
}
}
public static void main(String[] args) {
// 1、 Runnable
MyRunnable runnable = new MyRunnable();
// 2、 Thread
Thread thread = new Thread(runnable);
// 3、
thread.start();
}
}
2 가지 방법
public class ThreadDemo06 {
public static void main(String[] args) {
//
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
System.out.println(" :" +
Thread.currentThread().getName());
}
});
thread.start();
}
}
3 가지 방법
/**
*
* **/
public class ThreadDemo07 {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
System.out.println(" : "+
Thread.currentThread().getName());
});
thread.start();
}
}
4.Callable 인 터 페 이 스 를 실현 하 는 방식(1 가지)실행 이 끝 난 후 값 을 되 돌려 받 을 수 있 는 방법 을 얻 기 위해 서 입 니 다.
package Thread;
import java.util.Random;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
*
* Callable + Future
* */
public class ThreadDemo08 {
static class MyCallable implements Callable<Integer >{ // Integer
@Override
public Integer call() throws Exception {
//
int num = new Random().nextInt(10);
System.out.println(" :" +
Thread.currentThread().getName() +
" :" + num);
return num;
}
}
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 1、 Callable
MyCallable myCallable = new MyCallable();
// 2、 FutureTask
FutureTask<Integer> futureTask =
new FutureTask<>(myCallable);
// 3、 Thread
Thread thread = new Thread(futureTask);
//
thread.start();
//
int result = futureTask.get();
System.out.println(String.format(" :%s, :%d",
Thread.currentThread().getName(), result));
}
}
5.스 레 드 의 휴면Thread.sleep()
package Thread;
public class ThreadDemo09 {
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
String data = "ABCD";
for (char item:data.toCharArray()) {
System.out.print(item);
try {
//
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
Thread t1 = new Thread(runnable);
Thread t2 = new Thread(runnable);
t1.start();
t2.start();
}
}
6.스 레 드 우선 순위기본 우선 순위 5
최소 우선 순위 1
최대 우선 순위 10
우선 순위 가 클 수록 집행 가중치 가 높 습 니 다.
이론 적 으로 우선 순위 가 높 을 수록 집행 권한 도 커진다.그러나 CPU 의 스케줄 링 이 복잡 하기 때문에 우선 순위 에 따라 엄 격 히 집행 하지 않 지만 전체적으로 우선 순위 가 높 을 수록 집행 권한 이 높다.
7.수호 라인
수호 스 레 드 사용 필드:자바 쓰레기 회수 기,TCP 건강 검진
수호 라인 에 주의해 야 할 사항:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.