关闭

黑马程序员Java类之异常与线程(Thread)

218人阅读 评论(0) 收藏 举报

---------------------- android培训java培训、期待与您交流! ----------------------

 基本要点

1、线程实现的两种方式:一种是继续Thread类,另外一种是实现Runable接口。

2、设计模式:在Thread中实现多线程时也是调用run方法,这个是代理模式。

3、进程线程区别:进程是正在执行的程序,是现代操作系统的基石;线程基石进程中的独立控制单元,进程中至少有一个线程,Java VM 启动的时候会有一个进程java.exe。该进程中至少一个线程负责java程序的执行。而且这个线程运行的代码存在于main方法中。该线程称之为主线程。

 

 下面看一个继承Thread的例子

 

package horse;
/**这是一个继承Thread类
 * 被Testthread实现
 */
public class thread extends Thread {
	private String name;
	public thread(){}
	public thread(String){
		this.name = name;
	}
	//重写run()方法
	public void run(){
		for(int i=1;i<30;i++)
			System.out.println(name+"运行"+i);
	}
}

Thread的测试类

package horse;
/**这是一个测试thread的类
 * @param args
 */
public class Testthread {	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		thread t1 = new thread("asdf"); 
		thread t2 = new thread("zxcv");
		//这里启动线程掉用户start()方法,但实际还是run()
		t1.start();
		t2.start();
	}
}

这个是实现Runnable的例子

package horse;
/**这是实现Runnable的类
 */
public class Rthread implements Runnable{
	private String name;
	public Rthread(){}
	public Rthread(String name){
		this.name = name;
	}
	//重写run()方法
	public void run(){
		for(int i=1;i<10;i++)
			System.out.println(name+"运行"+i);
	}
}
package horse;
/**这是一个测试现实接口Runnble的类
 * @param args
 */
public class TestRunnble {	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Rthread r1 = new Rthread("线程r1");
		Rthread r2 = new Rthread("线程r2");
		Thread t1 = new Thread(r1);
		Thread t2 = new Thread(r2);
		t1.start();
		t2.start();
	}
}


总结:

名称

实现接口

继承父类

特点

避免单继承的局限性,适合多个相同程序代码的线程处理同义资源

java中一个子类只能继承一个父类不具备扩展

区别

代码置于接口子类的run()中,利于资源共享,代码和数据独立

线程代码在Thread子类的run()中

 ---------------------- android培训java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:40589次
    • 积分:898
    • 等级:
    • 排名:千里之外
    • 原创:52篇
    • 转载:11篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论