多线程--一不小心遇见你
Posted z-xiaoyao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程--一不小心遇见你相关的知识,希望对你有一定的参考价值。
最近刚刚接触了多线程,在此做一个简单的总结,和大家一起分享。
1、实现多线程编程的方式:
a、继承Thread类
b、实现Runnable接口
2、常用方法
start() | 通知线程规划器此线程准备就绪,等待调用线程对象的run方法,注意执行start()方法的顺序不代表线程启动的顺序
|
Run方法前加synchronized关键字 | 使多个线程在执行run方法时,以排队的方式进行处理。当一个线程调用run方法前,要判断run方法有没有被上锁 |
currentThread() | 返回代码段正在被哪个线程调用的 信息 |
isAlive() | 判断当前线程是否处于活动状态 |
sleep() | 在指定的毫秒内让当前正在执行的线程休眠 |
getId() | 取得线程的唯一标志 |
Interrupted() | 测试当前线程是否已经中断,线程的中断状态由该方法清除,当前线程指运行该方法的线程 |
isInterrupted() | 测试线程对象是否是中断状态,但不清除状态标志 |
stop() | 暴力停止线程,目前已作废,可能导致数据不一 |
Suspend() | 暂停线程 |
Resume() | 恢复线程的执行 |
yield() | 放弃当前的cpu资源,将他让给其他任务去占用cpu执行时间,但放弃的时间不确定,有可能刚刚放弃,马上又获得cpu时间片 |
setPriority() | 设置线程优先级,线程的优先级分为1~10这10个等级,如果小于1或大于10则抛出异常 |
setDaemon() | 是否是守护线程,如果()中的值为true则是守护线程 |
3.下面是多线程一些常见问题的导图,仅供参考
多线程颠覆了我对程序原有的认知,多线程真的是特别美的艺术。
以上是关于多线程--一不小心遇见你的主要内容,如果未能解决你的问题,请参考以下文章
记录一些遇见的bug——记录一个使用多线程异步调用openfeign时子线程丢失request请求头导致的空指针异常错误