创建线程的两种方式区别 |
您所在的位置:网站首页 › java程序常见的输入方式有两种 › 创建线程的两种方式区别 |
Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法。 ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。 下面就从几个例子来具体列出两种方式的区别 第一种方式:继承Thread类 实现步骤: 1.自定义类继承Thread 2.覆盖Thread中的run()方法 3.创建该类的对象,调用start()方法,开启线程并调用run方法 简单实例: class MyThread extends Thread{ public void run(){ for (int i = 0; i < 100; i++){ System.out.println("MyThread.run()..."+i); } /*单条线程运行一百次*/ } } public class test1{ public static void main (String[] args){ MyThread a = new MyThread(); a.start(); for (int j = 0; j < 100; j++){ System.out.println("test1.main()----"+j); } } } 第二种方式:实现Runnable接口 实现步骤: 1.定义一个实现Runnable接口的类 2.覆盖run方法 3.创建该类对象,并以该类对象为参数创建Thread类的对象,从而创建了一个线程 4.调用start方法,开启线程并调用run方法。 简单实例: class MyThread implements Runnable{ public void run (){ for (int i = 0; i < 50; i++){ System.out.println("MyThread.run()..."+i); } /*每条线程运行50次,共200次*/ } } public class test1{ public static void main (String[] args){ MyThread a = new MyThread(); Thread a1 = new Thread(a); Thread a2 = new Thread(a); Thread a3 = new Thread(a); Thread a4 = new Thread(a); a1.start(); a2.start(); a3.start(); a4.start(); } }从上面两个例子看,除了多一个步骤外两种方式区别并不大 那么为什么通常都使用第二种方式呢 我们来看第三个例子 public class test1{ public static void main(String [] args){ MyThread m=new MyThread(); Thread t1=new Thread(m,"Thread 1"); Thread t2=new Thread(m,"Thread 2"); Thread t3=new Thread(m,"Thread 3"); t1.start(); /*共运行一百次, 三条线程哪条抢到资源就运行哪条 */ t2.start(); t3.start(); } } class MyThread implements Runnable{ private int i=0; public void run(){ while(i |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |