吃透Java并发二:Thread线程用法

一、线程

线程是一个独立执行的调用序列,同一个进程的线程在同一时刻共享一些系统资源(比如文件句柄等)也能访问同一个进程所创建的对象资源(内存资源)。
每个程序都至少拥有一个线程-即作为Java虚拟机(JVM)启动参数运行在主类main方法的线程。在Java虚拟机初始化过程中也可能启动其他的后台线程。这种线程的数目和种类因JVM的实现而异。然而所有用户级线程都是显式被构造并在主线程或者是其他用户线程中被启动。

二、创建线程的三种方式

  1. 继承Thread类。
  2. 实现Runnable接口。
  3. 实现Callable接口。

继承Thread类和实现Runnable接口这两种方式来创建线程是一样的,其实Thread类也是实现了Runnable接口,个人更倾向于实现Runnable接口的方式,1、java是单继承的,一旦继承Thread就不能继承其它类了。2、实现Runnable接口可以供线程池使用。

实现Callable接口的方式:是带有返回值的,不能直接放到Thread里面使用,必须用FutureTask包装一层,可以使用futureTask.get()获取执行线程的返回值。

public class MyTest {
    /**
     * 继承Thread实现方式
     */
    public static class

猜你喜欢

转载自blog.csdn.net/u013277209/article/details/103061514