>  기사  >  Java  >  Java에서 스레드를 생성하는 방법에는 여러 가지가 있습니다.

Java에서 스레드를 생성하는 방법에는 여러 가지가 있습니다.

王林
王林앞으로
2019-11-25 17:35:392478검색

Java에서 스레드를 생성하는 방법에는 여러 가지가 있습니다.

스레드 생성 방법

1. 멀티스레딩을 구현하기 위해 Thread 클래스를 상속합니다

2. 멀티스레딩을 구현하기 위해 Runnable() 인터페이스를 덮어쓴 다음 run()도 재정의합니다. 이 방법을 권장합니다

3. 스레드를 생성하려면 Callable 및 Future를 사용하세요

관련 동영상 튜토리얼 권장: java 학습 동영상

예제는 다음과 같습니다.

1 멀티스레딩을 구현하려면 Thread 클래스를 상속하세요

rree.

2. Runnable() 인터페이스 덮어쓰기는 멀티스레딩을 구현한 다음 run()

을 재정의하여 Runnable() 인터페이스의 구현 클래스를 정의하고 Run() 메서드를 재정의합니다.

Runnable 구현 클래스의 인스턴스를 생성하고 이 인스턴스를 Thread의 대상으로 사용하여 Thread 객체를 생성합니다. 이 Thread 개체는 실제 스레드 개체입니다

스레드 개체의 start() 메서드를 호출하여 스레드를 시작합니다

/*
 * 继承Thread类创建线程
 * 1、重写run方法
 * 2、创建thread类的实例,即创建线程对象
 * 3、调用线程对象的start()来启动该线程
 * 注意:Thread类的每个进程之间不能共享该实例变量;具有单继承局限
 * */
public class StartThread extends Thread{
 
 private int i;
 @Override
 //重写run方法
 public void run() {
  // TODO Auto-generated method stub
  for(i=0;i<10;i++) {
   System.out.println(getName()+"  "+i);
   
  }
 }
 public static void main(String[] args) {
  for(int i=0;i<10;i++) {
   System.out.println(Thread.currentThread().getName()+ " ,"+i);
   //创建thread类的实例
   StartThread h1=new StartThread();
   StartThread h2=new StartThread();
   if(i==2) {
    //启动第一个进程
    h1.start();
    //启动第二个进程
    h2.start();
    
   }
   
  }
 }
 
}

3. Callable 및 Future를 사용하여 스레드를 만듭니다

Runnable 인터페이스와 달리 Callable 인터페이스는 다음을 제공합니다. call() 메소드는 스레드 실행 본문 역할을 하며 call() 메소드는 run() 메소드보다 더 강력합니다.

call() 메서드는 반환 값을 가질 수 있습니다.

call() 메서드는 예외 발생을 선언할 수 있습니다

/*创建线程方式二
 * 1、创建:实现Runnable+重写run
 * 2、启动:创建实现类对象+Thread对象+start
 * 
 * 注意:推荐使用,避免单继承的局限性,优先使用接口
 * 方便共享资源
 * */

public class MyThread2 implements Runnable {//实现Runnable接口
  public void run(){
  //重写run方法
  // TODO Auto-generated method stub
  //当线程类实现Runnable接口时
  //如果想要获取当前线程,只能使用Thread.currentThread方法
  for(;i<100;i++)
  {
   System.out.println(Thread.currentThread().getName()+" "+i);
  }  
  
}

public class Main {
  public static void main(String[] args){
    //启动线程1
      //不像继承Thread类一样,直接可以实例化对象即可,Runnable接口必须要
     //先创建实例,再将此实例作为Thread的target来创建Thread对象
    //创建并启动线程
    MyThread2 myThread=new MyThread2();

    Thread thread=new Thread(myThread);

    thread().start();

    //或者    new Thread(new MyThread2()).start();
  }
}

권장 관련 기사 튜토리얼: Java 프로그래밍 소개

위 내용은 Java에서 스레드를 생성하는 방법에는 여러 가지가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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