多线程--一不小心遇见你

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~1010个等级,如果小于1或大于10则抛出异常

setDaemon()

是否是守护线程,如果()中的值为true则是守护线程


3.下面是多线程一些常见问题的导图,仅供参考



多线程颠覆了我对程序原有的认知,多线程真的是特别美的艺术。

以上是关于多线程--一不小心遇见你的主要内容,如果未能解决你的问题,请参考以下文章

[遇见时光]java多线程中run和start方法

记录一些遇见的bug——记录一个使用多线程异步调用openfeign时子线程丢失request请求头导致的空指针异常错误

让你学会与理解Java的线程与并发(一,线程与进程,并发)

让人恶心的多线程代码,性能怎么优化!

《写给我第一个喜欢的男孩的歌》

还在用 SimpleDateFormat 做时间格式化?小心项目崩掉!