javarunnable接口(java 接口用法)

http://www.itjxue.com  2023-03-07 08:39  来源:未知  点击次数: 

java中runnable和callable的区别

1、意义区别:

Runnable接口中的run()方法的返回值是void,它做的事情只是纯粹地去执行run()方法中的代码而已;

Callable接口中的call()方法是有返回值的,是一个泛型,和Future、FutureTask配合可以用来获取异步执行的结果。

2、使用方法区别:

定义runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。

创建 Runnable实现类的实例,并依此实例作为Thread的target来创建Thread对象,该Thread对象才是真正的线程对象。

举例说明:

package org.thread.demo;

class MyThread extends Thread{

private String name;

public MyThread(String name) {

super();

this.name = name;

}

public void run(){

for(int i=0;i10;i++){

System.out.println("线程开始:"+this.name+",i="+i);

}

java中Runnable接口含义?

java中Runnable接口:是一个接口,它里面只有一个run()方法,没有start()方法,继承Runnable并实现这个方法就可以实现多线程了,但是这个run()方法不能自己调用,必须由系统来调用。

举例如下:

[java] view plain copy

public interface Runnable{ ?

public void run(); ?

}

所以,即使实现了Runnable接口,那也无法启动线程,必须依托其他类。

而Thread类,有一个构造方法,参数是Runnable对象,也就是说可以通过Thread类来启动Runnable实现的多线程。

[java] view plain copy

public Thread(Runnable target) {

init(null, target, "Thread-" + nextThreadNum(), 0);

}

所以,实现Runnable接口后,需要使用Thread类来启动。

举例说明java中的runnable 接口实现线程,并启动线程的方法.

public?class?RunnableDemo?{

public?static?void?main(String[]?args)?throws?Exception?{

long?statTime?=?System.currentTimeMillis();

SimpleRunnable?runnable1?=?new?SimpleRunnable();

SimpleRunnable?runnable2?=?new?SimpleRunnable();

//?每个?Thread(线程)可以接受一个?Runnable?的实现类做参数

//?线程启动时会去运行你实现的?run()?方法

Thread?thread1?=?new?Thread(runnable1);

Thread?thread2?=?new?Thread(runnable2);

thread1.start();?//?启动线程1

thread2.start();?//?启动线程2

thread1.join();?//?等待线程1运行结束

thread2.join();?//?等待线程2运行结束

long?endTime?=?System.currentTimeMillis();

double?time?=?(endTime?-?statTime)?/?1000.0;

System.out.println("程序运行时间:?"?+?time?+?"?秒");

//?每个任务运行时间都应该是?2?秒,但是因为你每个任务都用了一个线程去运行

//?所以这两个线程是同时(并发)进行的,所以这个程序只需要?2?秒左右就可以结束

}

}

//?写一个实现?Runnable?接口的类,并实现?run()?方法

class?SimpleRunnable?implements?Runnable?{

@Override

public?void?run()?{

runTask();?//?运行你的任务

}

private?void?runTask()?{

try?{

Thread.sleep(2000);?//?假设你的任务需要两秒完成

}?catch?(InterruptedException?ex)?{

ex.printStackTrace(System.err);

}

}

}

java百万并发任务怎么开线程

java百万并发任务用继承Thread类或实现Runnable接口开线程。

1、继承Thread类:重写run方法,在run方法中定义需要执行的任务,创建好了线程类之后,创建线程对象,然后通过start()方法去启动线程。

2、实现Runnable接口:实现Runnable接口必须重写其run方法。

Runnable接口详解?

在Java中,“线程”指两件不同的事情:

1、java.lang.Thread类的一个实例;

2、线程的执行。

使用java.lang.Thread类或者java.lang.Runnable接口编写代码来定义、实例化和启动新线程。

一个Thread类实例只是一个对象,像Java中的任何其他对象一样,具有变量和方法,生死于堆上。

Java中,每个线程都有一个调用栈,即使不在程序中创建任何新的线程,线程也在后台运行着。

一个Java应用总是从main()方法开始运行,mian()方法运行在一个线程内,它被称为主线程。

一旦创建一个新的线程,就产生一个新的调用栈。

线程总体分两类:用户线程和守候线程。

当所有用户线程执行完毕的时候,JVM自动关闭。但是守候线程却不独立于JVM,守候线程一般是由操作系统或者用户自己创建的。

(责任编辑:IT教学网)

更多

推荐网络工程师文章