Java 线程的使用

在Java开发中,经常会用到多线程开发,比如高并发,文件读写等操作,都可以使用多线程,本文就简单梳理Java中线程的使用

一、线程的创建

在Java中创建线程有三种方式,代码如下:

  1. 继承Thread类
public class MyThread extends Thread{
    @Override
    public void run() {
        super.run();
        System.out.println("线程执行了");
    }
}

//使用:
    MyThread myThread = new MyThread();
    myThread.start();

//输出:
    线程执行了   
  1. 实现Runnable接口:
public class MyRunnable implements Runnable{
    @Override
    public void run() {
        System.out.println("线程执行了Runnable");
    }
}

//使用:
    MyRunnable myRunnable = new MyRunnable();
    Thread thread = new Thread(myRunnable);
    thread.start();

//输出:
    线程执行了Runnable
  1. 实现Callable接口
public class MyCallable implements Callable<Integer> {
    @Override
    public Integer call() throws Exception {
        System.out.println("MyCallable执行了");
        return 123;
    }
}

//使用:
      MyCallable myCallable = new MyCallable();
      FutureTask<Integer> task = new FutureTask<>(myCallable);
      new Thread(task).start();
      Integer integer = task.get();
      System.out.println("返回值:"+integer);

//输出:
        MyCallable执行了
        返回值:123

Callable相比于Runnable来说功能更加强大,它可以通过FutureTask获取线程的返回值。且可以通过FutureTask接口来进行取消,查询是否完成等操作。

二、 线程的状态

新建(NEW):新建状态,尚未启动的线程。

可运行(RUNNABLE):线程准备就绪,可运行状态。

阻塞(BLOCKED):阻塞状态。例如同步代码块。

等待(WAITING):处于等待状态的线程。

等待(TIMED_WAITING):具有指定等待时间的等待线程的线程状态。

结束(TERMINATED):线程完成执行。结束。

三、线程的优先级

Java中每一个线程都有有个优先级,默认的优先级为5,优先级的范围为1-10,线程优先级有助于系统确定线程的调度顺序,但是不一定优先级越高的线程就越先执行,通常与所依赖的平台相关。

四、线程的常用方法

//开始线程
public synchronized void start()
//开始线程(该线程是使用独立的 Runnable 运行对象构造)
public void run()
//设置线程名称
public final synchronized void setName(String name)
//设置线程优先级
public final void setPriority(int newPriority)
//设置线程守护    
public final void setDaemon(boolean on)
//使当前线程等待
public final void wait()
//中断线程    
public void interrupt()

//让出资源
Thread.yield();
//线程休眠
Thread.sleep();


五、多线程

上面介绍了创建线程的三种方式,当遇到需要并发场景或者读写文件等操作时,我们可以使用多线程来执行,有利于提高程序的效率,但是如果线程利用不当,创建了太多的线程,反而会导致效率降低。当需要频繁创建线程时,我们就可以使用线程池。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容