说一下线程中常用的方法
在我们日常开发中线程是必不可少的,那么线程中的方法也就成了面试中的高频问题,决定整理一下;如有错误还请个位指正!
文章目录
- 说一下线程中常用的方法
- 写在前面
- 获取和设置线程名称
- 设置守护线程
- join()方法
- yied()方法
- 线程的优先级
- 线程停止
- 线程唤醒(notify)
- 其他方法
写在前面
线程相关的基本方法有wait(强迫一个线程等待),notify(通知一个线程继续执行),notifyAll(所有线程继续执行),sleep(强迫一个线程睡眠N毫秒),join(等待线程终止),yield(线程让步)等等;获取和设置线程名称 线程的名字一般在启动前设置,两个名字可以重复但是一般不这样做;
- public final void setName(String name):给线程可以设置线程名称
- public final String getName():获取该线程名称
- public static Thread currentThread():得到正在运行的线程
- public final void setDaemon(boolean on):设一个线程是否是一个守护线程 ,参数如果为true守护线程/后台线程
- public
final
boolean
isDaemon():判断一个线程是否为守护线程;
- public final void join():让其他的线程加入到当前线程
程序中调用sleep方法,可以使得线程暂时休眠;(类似于睡觉,醒来继续竞争)
- public static void sleep(long millis):让该线程休眠millis毫秒
- public static void yield():暂停当前正在执行的线程对象,并执行其他线程。
- public final void setPriority(int newPriority):更改线程的优先级
- public final int getPriority():获取优先级
优先级都是自定义的常量:线程停止 当一个线程运行时,另外一个线程可以直接调用interrupt()方法中断其运行状态,也可以是stop()方法;
public static final int MAX_PRIORITY 10 :最大优先级
public static final int NORM_PRIORITY 5 :默认优先级
public static final int MIN_PRIORITY 1 :最小优先级
- public void interrupt():中断线程一种状态(睡眠,其他状态…)
- public final void stop():强迫线程停止执行(虽然过时方法,可以用)
其他方法
- sleep():强迫一个线程睡眠N毫秒;
- isAlive(): 判断一个线程是否存活;
- join(): 等待线程终止;
- activeCount(): 程序中活跃的线程数;
- enumerate(): 枚举程序中的线程;
- currentThread(): 得到当前线程;
- isDaemon(): 一个线程是否为守护线程;
- wait(): 强迫一个线程等待;
推荐阅读
- MySQL基础|Mysql运算符
- java面试题|2022java面试题小总结
- Java|数据结构与算法(java)(线性表-队列)
- Spring|[Spring手撸专栏学习笔记]——容器事件和事件监听器
- java|用Java写出敬业福小程序
- java|支付宝集五福最全攻略!「一行黑科技」
- 程序员|你需要知道的有关Selenium异常处理的都在这儿
- java|2022年支付宝集五福|看这里100%扫敬业福
- spring|手撸简易spring框架(五)