글타래 (쓰레드) : 각 작업을 스레드라고합니다. 스레드는 독립적으로 존재할 수 없으므로 프로세스의 일부 여야합니다.
단일 스레드 : 일반적인 Java 응용 프로그램은 단일 스레드입니다. 예를 들어, Helloworld 프로그램을 실행할 때 JVM 프로세스가 시작된 다음 기본 메소드가 실행되어 스레드를 생성합니다. 주요 방법을 기본 스레드라고도합니다.
멀티 스레딩 : 동시에 둘 이상의 스레드를 실행하는 프로그램을 멀티 스레드 프로그램이라고합니다. 멀티 스레딩은 프로그래머의 목적을 충족하여 CPU를 최대한 활용하려는 목표를 달성하기 위해 효율적인 프로그램을 작성할 수 있습니다.
단일 스레드 코드 예 :
public class singlethread {public static void main (string [] args) {스레드 스레드 = thread.currentthread (); // 현재 실행중인 스레드 객체 스레드를 가져옵니다 .setName ( "단일 스레드"); // thread.out.println의 이름을 바꿉니다 (Thread.getName ()+"running"); for (int i = 0; i <10; i ++) {System.out.println ( "스레드가 자고 있습니다 :"+i); try {thread.sleep (1000); // 스레드가 잠자고, 1 초 만에 지연} catch (InterpruptedException e) {// todo auto-auto-auto-auto-rected catch blocke.printstacktrace (); system.out.println ( "스레드 오류");}}}}}}다중 스레드 코드 예 :
참고 : 멀티 스레딩을 구현하는 두 가지 방법이 있습니다. 하나는 스레드 클래스를 상속하고 다른 하나는 실행 가능한 인터페이스를 구현하는 것입니다.
멀티 스레딩을 구현하기 위해 스레드 클래스를 상속합니다
public class testthread {public static void main (String [] args) {스레드 t1 = new ExtendThread ( "t1", 1000); // 상단 객체를 사용하여 스레드를 만들고 스레드 이름과 스레드 수면 시간 스레드 T2 = New ExtendThread ( "T2", 2000)를 구성합니다. 스레드 T3 = 새로운 ExtendThread ( "T3", 3000); t1.start (); // 스레드를 시작하고 실행 메소드를 호출하십시오. t3.start ();}} class extendThread는 스레드를 확장합니다 {// 스레드 문자열 이름; int time; public extendThread (문자열 이름, int time) {// 스레드 이름 및 수면 시간 this.name = name; this.time = time;} public void run () {// 스레드 클래스의 실행 메소드를 다시 작성하십시오 {sleep (time); // 모든 스레드는 sleep} catch (interruptedExceptione) {e.printstacktrace (); system.out.println ( "스레드 인터럽트 예외");} system.out.println ( "이름은 :"+name+", 스레드 sleeps :"+time+"msec"); }}런닝 가능한 인터페이스를 구현하기위한 멀티 스레딩
공개 클래스 runnableThread {public static void main (String [] args) {runnable r1 = new inmprunnable ( "r1", 1000); // runnable 인터페이스는 스레드 클래스에 의존하여 스레드를 생성해야합니다. 스레드 t1 = 새 스레드 (r1); // runnable은 스레드가 아니기 때문에 start () 메소드를 호출 할 수 없으므로 스레드 클래스를 사용하여 실행 가능한 스레드를 추가하기 위해 스레드 클래스를 사용해야합니다. // 스레드를 시작하고 실행 방법 t2.start (); t3.start ();}} 클래스 inmprunable emplements runnable {// 실행 가능한 인터페이스 문자열 이름; int time; public intrunnable (문자열 이름, int time) {// 스레드 이름과 수면 시간 구성 this.name = name = time;) try {thread.sleep (time); // 모든 스레드는 수면 추가} catch (InterruptedException e) {e.printstacktrace (); system.out.println ( "스레드 인터럽트 예외");} system.out.println ( "이름은"+name+", 스레드 수면 :"+time+"ms");}}참고 : 스레드 클래스는 실제로 실행 가능한 인터페이스를 구현하는 클래스입니다.
스레드 클래스 상속을 통해 실행 가능한 인터페이스를 구현하는 장점