첫째, 멀티 스레딩의 구현을 상속
Rabit.java
패키지 cn.thread; / * * 아날로그 헤어 스레드 + 상속 무게 멀티 스레드 실행 (스레드 본체) 만들기 * 1 * / 공용 클래스 RABIT의 (가) 확장 스레드 { @Override 공공 무효 실행 () { 에 대한 ( int 형 = 0 I에게; I는 ++] I 100 < ) { 에서 System.out.println ( "토끼 실행"+ i가 "단계"+ ); } } } 클래스 거북이 (가) 확장 스레드 { @Override 공개 공극 실행 () { 위해 ( int로 , I가 <I = 0 100; 나는 ++ ) { 에서 System.out.println ( "거북이 실행"+ i "가 단계"+ ); } } }
RabitApp.java
패키지 cn.thread, 공공 클래스 RabitApp { 공공 정적 무효 메인 (문자열 []에 args) { // 1. 서브 클래스 객체 생성 RABIT의 RAB = 새로운 새로운 RABIT를 (); 거북이 토르 = 새로운 새로운 거북이 (); // 2. 통화 시작 () 메소드 rab.start (); tor.start () 에 대해 ( int로 I = 0; I <1000]은 I ++ ) { 에서 System.out.println ( "주 -"+ I); } } }
효과
두,의 Runnable 인터페이스는 멀티 스레드 달성하기 위해
상속과 비교 :
(1) 대전 방지제 (StaticProxy)
StaticProxy.java
패키지 cn.thread; / * * 정적 프록시 디자인 패턴 * 1의 진정한 역할 * 2, 진정한 에이전트 역할 문자 참조 보유 * 3, 구현 동일한 인터페이스를 모두 * / 공용 클래스 StaticProxy { 공공 정적 무효 메인 (문자열 [ ]에 args) { // 실제 역할을 만들 당신 = Y- 새 새 , 당신 () // 프록시 역할을 만들 WeddingCompany 회사 = 새로운 새로운 WeddingCompany합니다 (y 축) , Company.marry () } } // 인터페이스 인터페이스 결혼 { 공공 추상적 무효가 결혼을 ( ); } //실시간 문자 클래스 는 구현이 결혼은 { @Override 공공 무효는 () {결혼 에서 System.out.println ( "결혼" ) } } // 프록시 역할 클래스 WeddingCompany 구현이 결혼 { 개인 당신과 결혼, 공공 WeddingCompany () { } 공공 WeddingCompany을 {(당신과 결혼) 은이 우선은 = , 당신 } 개인 무효 {() 전 (에서 System.out.println "... 배치 pigsties을" ) } 개인 무효화 {) (이후 에서 System.out.println를 ( "收拾猪窝...." ); } @Override 공개 공극 () {결혼 (전); () you.marry; 후(); } }
효과 :