一、多线程的创建:
方式一:继承于Thread类
步骤:
- 创建一个继承于Thread类的子类
- 重写Thread类的run()方法,将此线程的执行操作声明在run()中
- 创建Thread类的子类的对象
- 通过此对象调用start()方法
例:遍历一百以内所有的偶数
package www; //1.创建一个继承于Thread类的子类 class Info extends Thread{ //2.重写Thread类的run()方法,将此线程的执行操作声明在run()中 @Override public void run() { for (int i = 0; i < 100; i++) { if (i%2==0){ System.out.println(i); } } } } public class ThreadTest { public static void main(String[] args) { //3.创建Thread类的子类的对象 Info info=new Info(); //4.通过此对象调用start()方法:1.启动当前线程 2:调用当前线程的run()方法 info.start(); } }
方式二:实现Runnable接口
- 创建一个实现Runnable接口的实现类
- 实现类中去实现Runnable中的抽象方法:run()
- 创建实现类的对象
- 将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象
- 通过Thread类的对象调用start()方法。
代码如下:
package www; //1.创建一个实现Runnable接口的实现类 class kingThread implements Runnable{ //2.实现类中去实现Runnable中的抽象方法 @Override public void run() { for (int i = 0; i < 100; i++) { if (i % 2 == 0){ System.out.println(Thread.currentThread().getName() + ":" + i); } } } } public class ThreadTest2 { public static void main(String[] args) { //3.创建实现类的对象 kingThread k1=new kingThread(); //修改线程名 //4.将此对象作为参数传递到Thread类的构造器中,创建Thread类的对象 Thread thread = new Thread(k1); //修改线程名 thread.setName("线程一"); //5.通过Thread类的对象调用start()方法。 thread.start(); Thread thread1 = new Thread(k1); thread1.start(); } }