java 멀티스레드 학습 노트 (2) -Runnable

1650 단어
스레드를 만드는 첫 번째 방법: Thread 클래스를 상속합니다.
루틴을 만드는 두 번째 방식: Runnable 인터페이스를 실현합니다.
1, 클래스 구현 Runnable 인터페이스를 정의합니다.
2, 인터페이스에 있는 런 방법을 덮어쓰고 라인의 작업 코드를 런 방법에 봉합니다.
3, Thread 클래스를 통해 루틴 대상을 만들고 Runnable 인터페이스의 하위 클래스 대상을 Thread 클래스의 구조 함수의 매개 변수로 전달한다.
왜?루틴의 작업은 모두 Runnable 인터페이스 하위 클래스 대상의run 방법에 봉인되어 있기 때문입니다.
따라서 라인 대상을 만들 때 실행할 작업을 명확하게 해야 합니다.
4, 스레드 대상의 start 방법을 호출하여 스레드를 시작합니다.
Runnable 인터페이스의 이점 실현:
1, 라인의 임무를 라인의 하위 클래스에서 분리하여 단독으로 봉인한다.
대상을 향한 사상에 따라 임무의 봉인을 대상으로 하다.
2, 자바 단일 계승의 한계를 피했다.
그래서 라인을 만드는 두 번째 방식은 비교적 자주 사용된다.
class Demo implements Runnable//extends Fu // Demo , 。
					// 。
{
	public void run()
	{
		show();
	}
	public void show()
	{
		for(int x=0; x<20; x++)
		{
			System.out.println(Thread.currentThread().getName()+"....."+x);
		}
	}
}


class  ThreadDemo
{
	public static void main(String[] args) 
	{	
		Demo d = new Demo();
		Thread t1 = new Thread(d);
		Thread t2 = new Thread(d);
		t1.start();
		t2.start();


//		Demo d1 = new Demo();
//		Demo d2 = new Demo();
//		d1.start();
//		d2.start();
	}
}



/*
class Thread 
{
	private Runnable r;
	Thread()
	{
	
	}
	Thread(Runnable r)
	{
		this.r  = r;
	}

	public void run()
	{
		if(r!=null)
			r.run();
	}

	public void start()
	{
		run();
	}
}
class ThreadImpl implements Runnable
{
	public void run()
	{
		System.out.println("runnable run");
	}
}
ThreadImpl i = new ThreadImpl();
Thread t = new Thread(i);
t.start();




class SubThread extends Thread
{
	public void run()
	{
		System.out.println("hahah");
	}
}
//SubThread s = new SubThread();
//s.start();

*/

좋은 웹페이지 즐겨찾기