您的位置 首页 java

JAVA线程简单实现的三种方法

线程是程序中的执行线程。 JAVA 虚拟机允许应用程序并发的运行多个执行线程。每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创建一个新 Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是 守护线程 时,新线程才是守护程序。当Java虚拟机启动时,通常都会有单个非守护线程(它通常会调用某个指定类的main方法)。Java虚拟机会继续执行线程,知道下列任意情况出现为止:调用 Runtime 类的exit方法,并且安全管理器允许退出操作发生。非守护线程的所有线程都已停止运行,无论是通过从对run方法的调用中返回,还是通过抛出一个传播到run方法之外的异常。

方法一:创建线程的方式一是直接extends Thread覆盖run()方法即可,这种实现方式的缺点是,一个Java类只能继承一个父类。

public class ThreadA extends Thread{

public void run(){

super.run();

try {

Thread.sleep(500L);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(“这是线程A”);

}

public static void main(String[] args) {

ThreadA threadA=new ThreadA();

threadA.start();//启动线程

System.out.println(“这是主线程;”);

}

}

方法二:创建线程的第二种方式是实现Runnable接口,实现run()方法。最为常见的线程创建方式。

public class ThreadB implements Runnable{

@ Override

public void run() {

try {

Thread.sleep(500L);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(“这是线程B”);

}

public static void main(String[] args) {

ThreadB threadB=new ThreadB();

new Thread(threadB).start();//注意启动方式有点不一样

System.out.println(“这里是主线程”);

}

}

方法三:创建线程的第三种方式是:implements Callable,实现call()方法可以得到线程的执行结果

public class ThreadC implements Callable<String>{

//实现Callable接口,实现call()方法

//可以有返回结果,注意这次是要覆盖call方法

public static void main(String[] args) {

ThreadC threadC=new ThreadC();

FutureTask<String> futureTask=new FutureTask<>(threadC);

new Thread(futureTask).start();//注意启动的方式不一样

System.out.println(“这是主线程:begin!”);

try {

System.out.println(“得到的返回结果:”+futureTask.get());

} catch (InterruptedException e) {

e.printStackTrace();

} catch (ExecutionException e) {

e.printStackTrace();

}

System.out.println(“这是主线程:end!”);

}

@Override

public String call() throws Exception {

try {

//模拟执行逻辑500ms

Thread.sleep(500L);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(“这是线程C”);

return “thread C”;

}

}

文章来源:智云一二三科技

文章标题:JAVA线程简单实现的三种方法

文章地址:https://www.zhihuclub.com/183111.shtml

关于作者: 智云科技

热门文章

网站地图