导航:首页 > 编程语言 > java实现线程的两种方法

java实现线程的两种方法

发布时间:2021-02-25 19:11:53

㈠ 为什么java中实现多线程的方式有两种

java创建线程的方式有三种
第一种是继承Thread类 实现方法run() 不可以抛异常内 无返回值
第二种是实现Runnable接口 实现方法容run() 不可以抛异常 无返回值
第三种是实现Callable<T>接口,接口中要覆盖的方法是 public <T> call() 注意:此方法可以抛异常,而前两种不能 而且此方法可以有返回值

第三种如何运行呢 Callable接口在util.concurrent包中,由线程池提交
import java.util.concurrent.*;
ExecutorService e = Executors.newFixedThreadPool(10); 参数表示最多可以运行几个线程
e.submit(); 这个里面参数传 实现Callable接口那个类的对象

㈡ Java中,请问在JAVA中实现线程有哪两种方式

1.继承Thread类
2.实现接口 Runnable
都可以的啊

㈢ java多线程,如何实现两个不同的方法

class test1 implements Runnable{

@Override
public void run() {
// TODO Auto-generated method stub

}

public int add(int i){
return i+1;
}
public int del(int j){
return j-1;
}
}

class test2 extends Thread{

@Override
public void run() {
// TODO Auto-generated method stub

}
public int add(int i){
return i+1;
}
public int del(int j){
return j-1;
}
}

㈣ java多线程都有几种方式实现

有三种:
(1)继承Thread类,重写run函数
创建:
class xx extends Thread{
public void run(){
Thread.sleep(1000) //线程休眠1000毫秒,sleep使线程进入Block状态,并释放资源
}}
开启线程:
对象.start() //启动线程,run函数运行
(2)实现Runnable接口,重写run函数
开启线程:
Thread t = new Thread(对象) //创建线程对象
t.start()
(3)实现Callable接口,重写call函数
Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务。
Callable和Runnable有几点不同:
①Callable规定的方法是call(),而Runnable规定的方法是run().
②Callable的任务执行后可返回值,而Runnable的任务是不能返回值的
③call()方法可抛出异常,而run()方法是不能抛出异常的。
④运行Callable任务可拿到一个Future对象,Future表示异步计算的结果。它提供了检查计算是否完成的方法,以等
待计算的完成,并检索计算的结果.通过Future对象可了解任务执行情况,可取消任务的执行,还可获取任务执行的结果

㈤ java有几种实现线程的方式

java创建线程的方式有三种
第一种是继承Thread类 实现方法run() 不可以回抛异常 无返回值答
第二种是实现Runnable接口 实现方法run() 不可以抛异常 无返回值
第三种是实现Callable<T>接口,接口中要覆盖的方法是 public <T> call() 注意:此方法可以抛异常,而前两种不能 而且此方法可以有返回值

第三种如何运行呢 Callable接口在util.concurrent包中,由线程池提交
import java.util.concurrent.*;
ExecutorService e = Executors.newFixedThreadPool(10); 参数表示最多可以运行几个线程
e.submit(); 这个里面参数传 实现Callable接口那个类的对象

㈥ java实现线程的两种方法有什么区别

为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢?

在Java中,类仅支持单继承,也就是说,当定义一个新的类的时候,它只能扩展一个外部类.这样,如果创建自定义线程类的时候是通过扩展 Thread类的方法来实现的,那么这个自定义类就不能再去扩展其他的类,也就无法实现更加复杂的功能。因此,如果自定义类必须扩展其他的类,那么就可以使用实现Runnable接口的方法来定义该类为线程类,这样就可以避免Java单继承所带来的局限性。

还有一点最重要的就是使用实现Runnable接口的方式创建的线程可以处理同一资源,从而实现资源的共享.

1、通过扩展Thread类来创建多线程

假设一个影院有三个售票口,分别用于向儿童、成人和老人售票。影院为每个窗口放有100张电影票,分别是儿童票、成人票和老人票。三个窗口需要同时卖票,而现在只有一个售票员,这个售票员就相当于一个CPU,三个窗口就相当于三个线程。通过程序来看一看是如何创建这三个线程的。

[html]view plain

  • {

  • privateintticket=100;//每个线程都拥有100张票

  • publicvoidrun(){

  • while(ticket>0){

  • System.out.println(ticket--+"issaledby"+Thread.currentThread());

  • }

  • }

  • }

  • 结果正如前面分析的那样,程序在内存中仅创建了一个资源,而新建的三个线程都是基于访问这同一资源的,并且由于每个线程上所运行的是相同的代码,因此它们执行的功能也是相同的。

    可见,如果现实问题中要求必须创建多个线程来执行同一任务,而且这多个线程之间还将共享同一个资源,那么就可以使用实现Runnable接口的方式来创建多线程程序。而这一功能通过扩展Thread类是无法实现的

    ㈦ java实现多线程的两种方法

    Thread t1=new Thread(){
    public void run(){
    System.out.println("第一种方法");
    }
    };
    t1.start();
    Thread t2=new Thread(new Runnable() {
    public void run() {
    System.out.println("第二种方法,可实专现同类下各线属程数据共享");
    }
    });
    t2.start();

    ㈧ 1. 写出用Java编写多线程程序的两种常用方法

    1、继承Thread,然后生成对象

    2、用类A实现runable接口,然后用你实现runnable的类A,生成Thread对象 Thread(A对象);

    API 上说明如下:

    创建新执行线程有两种方法。一种方法是将类声明为 Thread 的子类。该子类应重写 Thread 类的
    run 方法。接下来可以分配并启动该子类的实例。例如,计算大于某一规定值的质数的线程可以写成:

    classPrimeThreadextendsThread{
    longminPrime;
    PrimeThread(longminPrime){
    this.minPrime=minPrime;
    }

    publicvoidrun(){
    //
    ...
    }
    }

    然后,下列代码会创建并启动一个线程:

    PrimeThreadp=newPrimeThread(143);
    p.start();

    创建线程的另一种方法是声明实现 Runnable 接口的类。该类然后实现 run
    方法。然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动。采用这种风格的同一个例子如下所示:

    implementsRunnable{
    longminPrime;
    PrimeRun(longminPrime){
    this.minPrime=minPrime;
    }

    publicvoidrun(){
    //
    ...
    }
    }

    然后,下列代码会创建并启动一个线程:

    rimeRunp=newPrimeRun(143);

    newThread(p).start();

    ㈨ java多线程有几种实现方法

    java中多线程的实现方法有两种:
    1.直接继承thread类;
    2.实现runnable接口同步内的实现方法容有五种:1.同步方法;2.同步代码块;3.使用特殊域变量(volatile)实现线程同步;4.使用重入锁实现线程同步;5.使用局部变量实现线程同步

    ㈩ java中创建线程的两种方式有什么区别

    一种是继承 Thread 类,一种是 实现Runnable 接口,需要重写或者实现 run()方法。
    没啥区别,因专为java是单继承属的,所以不可能让所有的类都继承Thread类,所以必须有这个Runnable 接口。

    一般来说编程都会去 实现Runnble 接口,而不会采用继承Thread。

    阅读全文

    与java实现线程的两种方法相关的资料

    热点内容
    八零电子书下载txt免费下载 浏览:663
    电脑一体机的数据线插口在哪里 浏览:491
    手机上如何打开ppt文件怎么打开 浏览:961
    u盘中病毒后文件夹不见了 浏览:371
    iphone照片图库多个文件夹 浏览:852
    怎么用c编程平台 浏览:527
    编程里n怎么表示正整数 浏览:391
    微信聊天记录存储的文件夹 浏览:590
    iphone5s基带版本查询 浏览:548
    江阴证件文件翻译多少钱 浏览:316
    javaruntime142 浏览:610
    word把数字变斜 浏览:372
    小米6忘记锁屏密码怎么办啊 浏览:462
    北京白领都用什么社交app 浏览:518
    政法app哪个好用 浏览:514
    房产平台如何推广新网站 浏览:701
    u盘导文件总是中断 浏览:995
    下载的招标文件打不开是为什么 浏览:356
    都市美艳后宫 浏览:435
    十部顶级古埃及电影 浏览:107

    友情链接