创建线程的两种方式区别 您所在的位置:网站首页 抽脂有几种方式哪种最好呢 创建线程的两种方式区别

创建线程的两种方式区别

2024-07-09 18:22| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有