多线程的两种实现方式

/**
 * 进程和线程的区别:
 *  进程	 每个进程都有独立的代码和数据空间,
 *  	 进程间的切换会有较大的开销,一个进程包含1-n个线程。
 *  	 每个应用程序就是一个进程。
 *  线程	同一类线程共享代码和数据空间,
 *  	每个线程有独立的运行栈和程序计数器,线程切换开销小。
 *  
 *   线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止,
 *   多进程是指操作系统能同时运行多个任务(程序),
 *   多线程是指在同一程序中有多个顺序流在执行。
 *   
 *   每个线程都会独立的开辟一个栈空间
 *   Thread中有一个可以开辟一个新的线程方法:start();
 *   
 *   实现多线程的第一种方法:
 *   1.继承于java.lang.Thread;
 *   2.重写run方法;
 *   实现多线程的第二种方法:
 *   1.写一个类实现java.lang.Runnable接口
 *   2.实现run方法
 *   
 *   推荐使用第二种方法:
 *   好处:
 *   1.保留了类的继承权
 *   2.适合多个相同的程序代码去处理同一个资源
 *   3.增加程序的健壮性,代码可以被多个线程共享。代码和数据独立
 */
 
 
/**
 * 实现多线程的第一种方法:
 *   1.继承于java.lang.Thread;
 *   2.重写run方法;
 */
public class ThreadTest {

	public static void main(String[] args) {
		Thread01 t1=new Thread01();
		t1.start();//开辟一个新的线程
		for (int i = 0; i < 100; i++) {
			System.out.println("主线程----"+i);
		}
	}
}
class Thread01 extends Thread{
	public void run() {
		for (int i = 0; i < 100; i++) {
			System.out.println("我的线程++++"+i);
		}
	}
}
 
 
/**
 *  实现多线程的第二种方法:
 *   1.写一个类实现java.lang.Runnable接口
 *   2.实现run方法
 */
public class RunnableTest {

	public static void main(String[] args) {
		Runnable01 rb = new Runnable01();
		Thread td = new Thread(rb);//添加一个Runnable的对象,通过Thread来实现新线程
		td.start();
		for (int i = 0; i < 100; i++) {
			System.out.println("主线程----"+i);
		}
	}
}
class Runnable01 implements Runnable {
	public void run() {
		for (int i = 0; i < 100; i++) {
			System.out.println("我的线程++++"+i);
		}
	}
}
 
 

猜你喜欢

转载自blog.csdn.net/gadxiong/article/details/80007761