美文网首页
线程的状态转换与线程使用的三种方法

线程的状态转换与线程使用的三种方法

作者: 9dfaf364d57f | 来源:发表于2018-02-23 15:23 被阅读47次

1、线程6种状态


线程的状态

2、实现多线程的3种方法
(1)继承Thread类,重写run()方法

public class TestThread extends Thread {
    @Override
    public void run() {
        System.out.println("Hello World");
    }
    public static void main(String []args){
        TestThread testThread = new TestThread();
        testThread.start();
    }
}

(2)实现Runnable接口,重写run()方法

public class TestRunnable implements Runnable {
    @Override
    public void run() {
        System.out.println("Hello World");
    }
    public static void main(String []args){
        TestRunnable testRunnable = new TestRunnable();
        Thread thread = new Thread(testRunnable);
        thread.start();
    }
}

需要通过Thread后进行start。

(3)实现Callable接口,重写call()方法

public class TestCallable {
    public static class MyTestCallable implements Callable{
        @Override
        public String call() throws Exception {
            return "Hello World";
        }
    }
    public static void main(String[] args){
        MyTestCallable myTestCallable = new MyTestCallable();
        ExecutorService executorService = Executors.newSingleThreadExecutor();
        Future future = executorService.submit(myTestCallable);
        try {
            System.out.println(future.get());
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
    }
}

Tip:
(1)callable的全路径是java.util.concurrent.Callable
(2

Callable接口是属于Executor框架中的功能类,与Runnable接口功能类似,但比Runnable更加强大,主要为:
(1)线程执行完成后返回值
(2)Callable的call方法可以抛出异常
(3)Callable可以获取到一个Future对象,线程是异步的,可以通过Future获取异步计算结果。

3、线程中断
(1)interrupt() 向当前调用者线程发出中断信号
(2)isinterrupted() 查看当前中断信号是true还是false
(3)interrupted() 是静态方法,查看当前中断信号是true还是false并且清除中断信号,顾名思义interrupted为已经处理中断信号。

/**
  * 三个方法的使用
  */
Thread curr = Thread.currentThread();  
//设置中断
curr.interrupt();
//先获取当前清除后,获取当前中断信号
Thread.interrupted());
//获取中断信号状态
curr.isInterrupted());  

三个方法的更加详细讲述请参考:http://blog.csdn.net/qpc908694753/article/details/61414495

相关文章

  • 工作线程转换为UI线程三种方式

    我们将工作线程转换为UI线程,主要是进行UI的更新操作;在工作线程中使用三种方法: Activity的runOnU...

  • 线程的状态转换与线程使用的三种方法

    1、线程6种状态 2、实现多线程的3种方法(1)继承Thread类,重写run()方法 (2)实现Runnable...

  • java线程之一(基础知识总结)

    目录 1、线程的概念 2、创建线程的方法 3、线程的状态及转换 4、线程的主要方法 ---------------...

  • 多线程之(线程休眠)

    线程休眠 线程休眠,是通过调用线程的sleep()方法来实现。即让线程当前的状态转换为休眠状态(阻塞状态)。我们可...

  • 八、线程池剖析

    一、前置问题 线程的状态转换 为什么要使用线程池 线程池的继承体系 线程池使用的场景 线程数的设置规则 线程池的状...

  • Java基础知识(2)

    二、多线程 线程的状态以及转换流程状态NEW初始状态,线程被构建,但还没有调用start()方法RUNNABLE运...

  • 多线程基础——拾遗

    主要内容 线程组的使用 切换线程状态的的方法 SimpleDataFormat类与多线程的解决办法 处理线程异常的...

  • Java多线程

    目录 什么是多线程?引入多线程的意义何在? 并行和并发 线程安全 线程状态 如何保证线程安全? 创建线程的三种方法...

  • 线程基础

    线程创建的三种方法 ThreadRunnableFutureTask三种线程实现及对比 线程的等待与唤醒 wait...

  • Java并发

    使用线程 Java中有三种使用线程的方法: 实现 Runnable 接口; 实现 Callable 接口; 继承 ...

网友评论

      本文标题:线程的状态转换与线程使用的三种方法

      本文链接:https://www.haomeiwen.com/subject/azkenxtx.html