스물네 번째: 다중 스레드

1993 단어 다중 스레드
하나.
스레드a. 스레드는 프로그램 내부의 순서 제어 흐름 b. 스레드와 프로세스 1.모든 프로세스는 독립된 코드와 데이터 공간(프로세스 상하문)이 있고 프로세스 전환의 비용이 크다.루틴: 가벼운 프로세스, 같은 종류의 루틴은 코드와 데이터 공간을 공유하고 각 루틴은 독립된 실행 창고와 프로그램 계수기(pc)를 가지고 루틴 전환 비용이 적다.다중 프로세스: 운영체제에서 여러 작업을 동시에 실행할 수 있음(프로그램) 4.다중 루틴: 같은 응용 프로그램에서 여러 개의 순서 흐름이 동시에 실행됩니다. 스스로 실행과 병행 실행을 이해하고 실행합니다!!!
스레드를 호출하는 start 방법은 스레드를 여는 것입니다.라인을 직접 호출하는run 방법은 라인을 켜는 것이 아니라 직접 실행하는 방법입니다
public class MyThread extends Thread {

	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			System.out.println("Thread executed:" + i);
		}
	}

	public static void main(String[] args) {
		MyThread thread = new MyThread();
		thread.run();//      ,             
		System.out.println("---------------------------");
		//thread.start();//           
	}
}

둘.
스레드를 만드는 두 가지 방법:
1. Thread 클래스 계승
public class MyThread2 {
	public static void main(String[] args) {
		Thread1 t1 = new Thread1();
		Thread2 t2 = new Thread2();

		t1.start();
		t2.start();
	}
}

class Thread1 extends Thread {
	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			System.out.println("hello:" + i);
		}
	}
}

//   Thread     
class Thread2 extends Thread {
	@Override
	public void run() {
		for (int i = 0; i < 10; i++) {
			System.out.println("world:" + i);
		}
	}
}

2. Runnable 인터페이스 구현
public class MyThread3 {
	public static void main(String[] args) {
		Thread3 tr3 = new Thread3();
		Thread4 tr4 = new Thread4();
		Thread t3 = new Thread(tr3);
		Thread t4 = new Thread(tr4);
		t3.start();
		t4.start();
	}
}

//   Runnable      
class Thread3 implements Runnable {
	public void run() {
		for (int i = 0; i < 10; i++) {
			System.out.println("hello:" + i);
		}
	}
}

class Thread4 implements Runnable {
	public void run() {
		for (int i = 0; i < 10; i++) {
			System.out.println("world:" + i);
		}
	}

}

좋은 웹페이지 즐겨찾기