>  기사  >  Java  >  Java에서 멀티스레딩을 구현하는 방법

Java에서 멀티스레딩을 구현하는 방법

王林
王林앞으로
2020-09-30 15:56:352024검색

Java에서 멀티스레딩을 구현하는 방법

요구 사항: 멀티 스레드 프로그램을 구현하고 싶습니다

(권장 튜토리얼: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제