线程+线程池

线程 

1、认识线程

  • 线程是进程的最基本执行单位。是CPU调度的最小单位。
  • 在同一时间需要完成多项任务的时候

2、创建线程的三种方式

  1. 继承 Thread 类
  2. 实现 Runnable 接口
  3. 实现 Callable  接口
创建方式 使用场景
Thread 单继承
Runnable 无返回值任务
Callable  有返回值任务

3、run 和 start 方法的区别

线程+线程池_第1张图片

3、常用的方法

方法名称 作用
currentThreade 获取当前线程
setName 设置线程名称
setPriority 设置线程优先级
getPriority 获取线程优先级
sleep 使当前正在执行的线程进入休眠状态
interrupt
interrupt 中断线程 非静态方法
interrupted 判断线程是否被中断,并清除中断标记 静态方法
isInterrupted 判断线程是否被中断 非静态方法
yield 使当前线程放弃执行权 静态方法
join 等待该线程死亡 非静态方法
setDaemon 设置该线程是否为后台线程(后台线程随主线程的结束而结束) 非静态方法
isDaemon 判断该线程是否为后台线程 非静态方法


//获取当前正在执行的线程
Thread thread = Thread.currentThread();

 //设置线程名称
thread.setName("线程名称");

//获取线程名称
String threadName = thread.getName();

//设置线程优先级。由低到高分为10个等级 1-->10
thread.setPriority(10);
int priority = thread.getPriority();

//使当前正在执行的线程进入休眠状态
try {
      Thread.sleep(10000);
      Thread.sleep(10000,99999);
    } catch (InterruptedException e) {
       e.printStackTrace();
    }
//优雅的中断线程
        //创建任务
         Task task = new Task();
        //将任务传递给线程
        Thread thread1 = new Thread(task);
        thread1.start();
        //中断线程
        thread.interrupt();



public class Task implements Runnable {
    @Override
    public void run() {
        //无限打印语句
        public void run () {
            //获取当前正在执行的任务线程
            Thread thread = Thread.currentThread();
            //当线程被中断时
            if (thread.isInterrupted()) {
                break;
            }
            System.out.println("正在运行");
        }
    }
}






你可能感兴趣的:(java,java,线程,线程池)