Java并发学习笔记 线程篇

2020-05-24 16:11:11来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Java并发学习笔记 线程篇

创建线程的几种方式

public class T02_HowToCreateThread {
    static class MyThread extends Thread {
        @Override
        public void run() {
            System.out.println("Hello MyThread!");
        }
    }

    static class MyRun implements Runnable {
        @Override
        public void run() {
            System.out.println("Hello MyRun!");
        }
    }

    static class MyCall implements Callable<String> {
        @Override
        public String call() {
            System.out.println("Hello MyCall");
            return "success";
        }
    }

 

启动线程的五种方式

  public static void main(String[] args) {
        new MyThread().start();     //第一种
        new Thread(new MyRun()).start();      //第二种
        new Thread(()->{                //第三种
            System.out.println("Hello Lambda!");
        }).start();

        Thread t = new Thread(new FutureTask<String>(new MyCall()));    //第四种
        t.start();

        ExecutorService service = Executors.newCachedThreadPool();   //第五种
        service.execute(()->{
            System.out.println("Hello ThreadPool");
        });
        service.shutdown();
    }
}

 

中断线程的方法

 当线程的run方法执行方法体中的最后一条语句后,并经由执行return语句返回时,或者出现了在方法中没有捕获的异常时,线程将终止。

没有可以强制线程终止的方法。然而,interrupt方法可以用来请求终止线程。

Java早期版本中,还有一个stop方法,其他线程可以调用它终止线程。但是这个方法已经被弃用了。

线程状态

线程可以有如下6种状态:

  • New (新创建)
  • Runnable (可运行)
  • Blocked (被阻塞)
  • Waiting (等待)
  • Timed waiting (计时等待)
  • Terminated (被终止)

要确定一个线程的当前状态,可调用getState方法

 


原文链接:https://www.cnblogs.com/cjw-blogs/p/12951885.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【java框架】JPA(4) -- JPA二级缓存与JPQL

下一篇:HashMap理解