자바 스 레 드 생 성 및 휴면
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에 따라 라이센스가 부여됩니다.