요구 사항: 멀티 스레드 프로그램을 구현하고 싶습니다
(권장 튜토리얼: java 과정)
구현 방법:
스레드는 프로세스에 의존하므로 먼저 프로세스를 만들어야 합니다.
The 프로세스는 시스템에 의해 생성되므로 프로세스를 생성하려면 시스템 함수를 호출해야 합니다
그러나 Java는 시스템 함수를 직접 호출할 수 없으므로 멀티스레드 프로그램을 직접 구현할 방법이 없습니다
하지만 Java는 직접 호출할 수 있습니다 C/C++로 작성된 프로그램을 호출하여 멀티 스레드 프로그램을 구현합니다
C/C++는 시스템 함수를 호출하여 프로세스를 생성하고, Java는 이러한 것을 호출하여
우리가 사용할 몇 가지 클래스를 제공하기 때문입니다. 멀티스레딩을 구현할 수 있습니다
그러면 Java에서 제공하는 클래스는 무엇인가요?
Thread
API를 보면 멀티스레딩을 구현하는 두 가지 방법이 있다는 것을 알 수 있습니다
방법 1: Thread 클래스 상속
단계:
A: 사용자 정의 클래스 MyThread가 Thread 클래스를 상속합니다
B : MyThread 클래스에는 여러 단계가 있습니다. run();
왜 run() 메서드인가요?
한 카테고리의 모든 코드가 스레드에 의해 실행될 필요는 없습니다
이때, 여러 스레드에 의해 실행될 수 있는 코드를 구별하기 위해 Java에서는 Thread 클래스
에 run() 메소드를 제공하여 다음을 포함시킵니다. 코드
C: 개체 만들기
D: 스레드 시작
예:
package cn.itcast_01; public class 如何实现多线程及其多线程方式1的思路 { public static void main(String[] args) { // 创建线程对象 MyThread my = new MyThread(); //启动线程 my.run(); my.run(); //调用run();方法为什么是单线程呢? //因为run();方法的直接调用其实就相当于普通方法调用,所有你看到的是单线程的效果 //想要看到多线程的效果,就必须说另一个方法:start() //面试题run()和start()的区别 //run():仅仅是封装被线程执行的代码,直接调用依旧是普通方法 //start():首先启动了线程,然后再由JVM去调用该线程的run()方法 MyThread my = new MyThread(); my.start(); my.start();//IllegalThreadStateException:非法的线程状态异常 //为什么呢? //因为这是相当于my线程别调用了两次。而不是两个线程的启动 //创建两个线程 MyThread my1 = new MyThread(); MyThread my2 = new MyThread(); my1.start(); my2.start(); } }
관련 권장 사항: Java 시작하기
위 내용은 Java에서 멀티스레딩을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!