博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java多线程-Thread类的一些基本API
阅读量:2169 次
发布时间:2019-05-01

本文共 871 字,大约阅读时间需要 2 分钟。

1 @Deprecated(since="1.2")Thread.stop()

该方法被声明为废弃方法,不推荐使用,该方法过于暴力,强制结束。该方法会释放它所有的监视器锁,可能会导致数据不一致的问题,举个简单的例子比如i++操作,在一个线程读取I值后被stop掉,其他线程在读取I之后取到的结果是未被写入的结果。

2 Thread.sleep(long millis[,nanos])

使当前正在执行的线程进入睡眠状态(暂时停止执行)以指定的毫秒数为准,线程不会失去任何监视器的所有权。第二个可选参数可以额外的将睡眠时间精确到纳秒。

3 Thread.yield()

让出当前线程的调度权力,但不保证下次竞争还会抢到CPU时间

4 Thread.interrupt(),Thread.interrupted(),Thread.isInterrupted()

中断线程,往往配合isInterrupted方法,优雅的终止线程

interrupted和isInterrupted方法都是判断线程是否被中断,但是interrupted方法会清除当前的中断状态。

也就是说该方法如果被连续调用两次第二次会返回false,除非线程再次被interrupt。

5 Thread.isAlive()

      判断线程是否存在,是不是非TERMINATED状态。

6 @Deprecated Thread.suspend(),@Deprecated Thread.resume()

suspend方法挂起一个线程直到该线程被调用resume方法才可以继续执行,suspend方法不会释放锁,在JDK1.2后被声明废弃,因为如果suspend先与resume发生则就会发生死锁。

7 Thread.join([,long millis])

该方法的语义就是当前线程等在待被join的线程上,直到被join的线程结束,当前线程才可以继续执行。

8 setDaemon(boolean on),isDaemon()

守护线程,需要注意的是必须在start方法之前进行设置。

转载地址:http://thazb.baihongyu.com/

你可能感兴趣的文章
Centos7 离线安装RabbitMQ,并配置集群
查看>>
Centos7 or Other Linux RPM包查询下载
查看>>
运行springboot项目出现:Type javax.xml.bind.JAXBContext not present
查看>>
Java中多线程向mysql插入同一条数据冲突问题
查看>>
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>
目的:使用CUDA环境变量CUDA_VISIBLE_DEVICES来限定CUDA程序所能使用的GPU设备
查看>>
问题:Mysql中字段类型为text的值, java使用selectByExample查询为null
查看>>
程序员--学习之路--技巧
查看>>
解决问题之 MySQL慢查询日志设置
查看>>
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>