자바 스 레 드 생 성 및 휴면

1.프로 세 스 vs 스 레 드
4.567917.1.프로 세 스 는 시스템 배분 자원 의 최소 단위 이다.스 레 드 는 시스템 스케줄 링 의 최소 단위 이다
  • 2.한 프로 세 스 에 적어도 하나의 스 레 드 가 포함 되 어야 합 니 다
  • 4.567917.3.스 레 드 는 반드시 계승 에 의존 해 야 한다.스 레 드 는 프로 세 스 의 실질 적 인 업무 의 최소 단위 이다2.스 레 드 생 성 방식
    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.스 레 드 의 휴면
  • 1、 Thread.sleep()
  • 휴면 1 초4.567917.그 중에서 선택 할 수 있 는 것 은 4.567914.일 을 나타 내 고 4.567914.시간 을 나타 낸다.
  • 3、Thread.sleep(TimeUnit.SECONDS.toMillis(1))
  • 연습:"AABBCCDD"를 연속 스 레 드 로 인쇄 합 니 다.한 스 레 드 는"ABCD"만 인쇄 할 수 있 습 니 다.
    
    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 건강 검진
    수호 라인 에 주의해 야 할 사항:
  •  1.수호 스 레 드 는 Thread.start()전에 설정 해 야 합 니 다.수호 스 레 드 를 설정 하고 스 레 드 를 시작 하면 프로그램 이 잘못 되 고 설 정 된 수호 스 레 드 값 이 유효 하지 않 습 니 다
  • 2.수호 스 레 드 t1 내부 에 새로운 스 레 드 t2 를 만 듭 니 다.이때 t2 는 기본 적 인 상황 에서 도 수호 스 레 드 입 니 다
  • 자바 스 레 드 의 생 성 및 휴면 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 자바 스 레 드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기