차이점은 다음과 같습니다.
Java의 스레드는 Java.lang.Thread를 통해 구현된다는 것을 알고 있습니다. 그런 다음 Thread 객체를 인스턴스화하여 스레드를 생성한 다음 start()를 호출하여 시작할 수 있습니다. 그러나 Thread의 특정 메소드 run()도 스레드를 시작할 수 있는데, 이 두 메소드의 차이점은 무엇입니까?
스레드 상태
在Java当中,线程通常有五种状态:创建、运行、阻塞、等待、终止 NEW------------------->新建状态,没有调用start()之前的状态 RUNNABLE---------->运行状态,(running执行中,ready就绪(等待cpu时间片)) BLOCKED------------>阻塞状态, WAITING-------------->等待状态,没有明确的等待结束时间,调用wait() TIMED_WAITING—>超时等待状态,有明确的等待时间,如:sleep(xxx) TERMINATED-------->终止状态
멀티 스레딩의 원리:
우리는 일반적으로 스레드를 시작하기 위해 새로운 스레드를 사용하고, 시작하기 위해 start 메소드를 호출합니다. 스레드는 실행 준비 상태에 있고 CPU 스케줄링을 기다립니다. 그런 다음 스레드에서 run() 메서드를 실행합니다. start 메서드를 사용하면 실행 메서드가 완료될 때까지 기다리지 않고 다음 코드를 계속 실행할 수 있기 때문에 진정한 멀티스레딩을 실현할 수 있습니다. 스레딩.
스레드를 직접 사용하여 run 메소드를 실행하면 어떻게 되나요?
run 메소드는 스레드에서의 일반적인 메소드이기 때문에 run() 메소드를 직접 호출하면 이때는 메인 스레드에서 실행됩니다. 왜냐하면 프로그램에 스레드가 하나뿐이라면 메인 스레드이기 때문입니다. 두 개의 스레드입니다. 둘 다 run() 메서드를 직접 호출하면 실행 순서가 순서대로 실행되어야 하며 멀티스레딩의 목적은 달성되지 않습니다.
무료 학습 영상 공유: java 영상 튜토리얼
코드 비교
public class ThreadDemo5 { public static final boolean flag=false; public static void main(String[] args) { Thread t1=new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()); } }); t1.start(); } }
start() 메소드 호출, 스레드 이름은 기본값
public class ThreadDemo5 { public static final boolean flag=false; public static void main(String[] args) { Thread t1=new Thread(new Runnable() { @Override public void run() { System.out.println(Thread.currentThread().getName()); } }); t1.run(); } }
run() 호출, 스레드 이름은 main
관련 권장 사항: Java 입문 튜토리얼
위 내용은 Java 스레드에서 시작 메소드와 실행 메소드의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
