多线程:在操作系统每次分时给java程序一个时间片的cpu时间内,在若干个独立的可控制的线程之间切换
线程的创建:
两种创建线程的方法:1.实现Runable接口
2.继承Thread类
Thread类的构造方法:1.用Thread类或者子类创建线程对象,创建线程是通过调用Thread类的构造方法
来实现的。
2.java中线程体由Thread类的run()方法定义,该方法定义了线程的具体行为并指
定了线程要操作的数据,线程开始执行时,也是从它的run方法开始执行的。
3.每个线程都有自己的名称。
1.实现Runnable接口创建线程:
步骤:1.定义一个类实现Runnable接口,在该类中实现run() 方法。
2.将该方法的的实例作为参数传给Thread类的一个构造方法,从而创建一个线程。
格式:Thread 对象=new Thread(new 类名);
注意:新建的线程不会自动运行,必须调用线程的start()方法。
package src; public class Runnable Thread { public static void main(String args[]) { Thread t1 = new Thread(new Hello("t1")); Thread t2 = new Thread(new Hello("t2")); t1.start(); t2.start(); } } class Hello implements Runnable { int i ; String name; public Hello(String threadname) { name=threadname; } public void run() { while(true) { System.out.println(name+":Hello"+i++); if (i==5) break ; } } }
2.Thread 类创建步骤:1.定义一个类继承Tread类,并写其中的run方法。
2.创建该类子类的对象创建线程。
格式:类 对象=new 类();
3.start()方法开始运行;
package src; public class extendsThread { public static void main(String[] args) { Hello t1=new Hello("t1"); Hello t2=new Hello("t2"); t1.start(); t2.start(); } } class Hello extends Thread { int i=0; String name; public Hello(String threadname) { name=threadname; } public void run() { while (true) { System.out.println(name+":Hello"+i++); if (i==5) break; } } }
线程两种创建方法比较:
Runnable接口的优势:1.符合oo设计的思想。
2.便于用extends继承其它类
继承Thread类优点:1.程序代码更简单。
2.可以在run()方法中直接调用线程的其它方法。
建议采用第一种方式