이전 기사에서는이 기사를 통해 Java 멀티 스레딩 예제를 소개합니다.
우선, 멀티 스레딩의 장점과 단점을 알려 드리겠습니다.
멀티 스레딩의 장점 :
1) 더 나은 자원 활용
2) 프로그래밍은 경우에 따라 더 간단합니다
3) 프로그램이 더 빨리 반응합니다
멀티 스레딩 비용 :
1) 더 복잡한 디자인
일부 다중 스레드 응용 프로그램은 단일 스레드 애플리케이션보다 간단하지만 다른 응용 프로그램은 일반적으로 더 복잡합니다. 코드 의이 부분은 여러 스레드를 통해 공유 데이터에 액세스 할 때 특별한주의가 필요합니다. 스레드 간의 상호 작용은 종종 매우 복잡합니다. 잘못된 스레드 동기화로 생성 된 오류는 수정을 감지하고 재현하기가 매우 어렵습니다.
2) 컨텍스트 전환의 오버 헤드
CPU가 하나의 스레드 실행에서 다른 스레드 실행으로 전환하면 먼저 현재 스레드, 프로그램 포인터 등의 로컬 데이터를 저장 한 다음 다른 스레드, 프로그램 포인터 등의 로컬 데이터를로드하고 시작해야합니다. 실행. 이 스위칭을 "컨텍스트 스위치"라고합니다. CPU는 한 컨텍스트에서 스레드를 실행 한 다음 다른 컨텍스트로 전환하여 다른 스레드를 실행합니다. 컨텍스트 전환은 저렴하지 않습니다. 필요하지 않은 경우 컨텍스트 전환을 줄여야합니다.
스레드를 정의하고 시작하기위한 두 가지 주요 기술이 있습니다.
첫째 : 스레드 클래스는 java.lang.runnable 인터페이스를 구현하거나 java.lang.thread 클래스를 상속해야하며, 실행 메소드에 입력, 출력 및 예외가없는 실행 메소드를 구현해야합니다.
둘째 : 스레드 클래스의 시작 방법을 호출하여 스레드를 시작하면 START 메소드가 자동으로 실행을 시작합니다.
패키지 테스트; import java.util.vector; import java.util.date;/*** 스레드 테스트 인스턴스* @author 여전히 흐르고 있습니다*/public class threadnew {/**** @author 여전히 물의 흐름******** / class thread는 stread {private date runtime () {system.out.println (this.runtime = new date (); )}}}} * * @author는 여전히 runnable {private void run () {system.out.println (threadb begin 날짜 (); System.out.println ( "Threadb end.")}*/public void starta () {thread threada = threada.start (); */public void startb () {runnable threadb = thread thread (); [] args) {ThreadNew test = test.starta ();