Java多线程基础知识

Java创建多线程的两种基本方式
1.编写多线程类继承Thread类
public class ThreadTest extends Thread{
 
    public ThreadTest(String name) {
        super(name);
    }
 
    @Override
    public void run() {
    }
}
public static void main(String[] args) throws InterruptedException {
    ThreadTest threadTest = new ThreadTest("继承Thread类的");
    threadTest.start();
 
    /*ThreadTest2 threadTest2 = new ThreadTest2();
    Thread thread = new Thread(threadTest2, "实现Runable接口的");*/
}
2.编写多线程类实现Runable接口 并把对象赋给Thread构造器
public class ThreadTest2 implements Runnable{
    @Override
    public void run() {
       
    }
}
 
public static void main(String[] args) throws InterruptedException {
 
    ThreadTest2 threadTest2 = new ThreadTest2();
    Thread thread = new Thread(threadTest2, "实现Runable接口的");
}
 
1.改线程名字
  • setName(); 
  • 或者通过重写构造器,调用父类构造器
 
2.获取当前线程名字
  •      Thread . currentThread ().getName()
  •     获取某个线程名 多线程类对象 .getName()
 
3.判断线程是否存活 
  •     isAlive();
 
4.等待这个线程死亡
  •     使用这个方法的线程,只有执行完自己的线程后才会执行其他线程    
  •     join();    
 
5.使线程暂时停止运行
  •     sleep();
 
6.开启线程
  • start();
 
7.把执行权让出去
  •     yield();
 
8.获取线程优先级
  •     getPriority();
  • 线程最小优先级1 最大为10 默认为5
 
9.强制停止线程
  • stop(); 已过时,不建议使用
 
10.设置优先级
  • setPriority();  优先级1-10
  • MIN_PRIORITY = 1 最小优先级
  • NORM_PRIORITY = 5 默认优先级
  • MAX_PRIORITY = 10 最大优先级 
 
11.设置守护线程
  • setDaemon()
12.挂起 已弃用
    suspend() 可能导致死锁
 
线程的生命周期
1.新建 当一个Thread类或起子类的对象被声明并创建时,新生的线程对象处于新建状态
2.就绪 处于新建状态的线程被Start()后,将进入线程队列等待cpu时间片分配到资源,此时它已经具备了运行条件,只是还没分配到cpu资源
3.运行 当就绪的线程被调度且获得cpu资源,便进入运行状态,run方法定义了线程的操作和功能
4.阻塞 在某种特殊情况下,被人为挂起或 执行输入输出操作时,让出cpu并临时中止自己的执行,进入阻塞状态
5.死亡 线程完成了它的全部工作或线程被提前强制性地中止,或者出现异常导致结束 
 
 
Java多线程基础知识_第1张图片
 

你可能感兴趣的:(Java)