java中实现多线程的应用有两种途径,一种是用Thread类的子类创建线程,另一种是用Thread类创建线程。
Thread类综合了java程序中一个线程需要拥有的属性和方法,主要有:
构造方法,start(), run()等
当编写Thread的子类时,可以在子类中重写父类的run()方法,该方法中包含了线程的操作。这样程序在创建自己的线程时,只需要创建一个已定义好的Thread子类实例就好了。
Runnable是一个接口,该接口只有一个方法run(),所有实现Runnable接口的类都必须具体实现这个run()方法,为它提供方法体,并定义基本操作。当用Thread类的构造方法 public Thread(Runnable target)创建线程对象时,构造方法中的参数必须是一个具体的对象,该对象称作线程的目标对象,创建线程目标对象的类必须实现Runnable接口。当线程调用start()方法时,一旦轮到它来享用CPU,目标对象就会自动调用接口中的run()方法。所以一个实现了Runnable接口的类实际上定义了一个主线程之外的新线程操作。 |