为了账号安全,请及时绑定邮箱和手机立即绑定

Java多线程学习笔记(常用方法和关键字)

标签:
Java
Java多线程常用方法和关键字(自己容易忘记的和弄混的)
1.Thread类常用方法:
Thread MyThread = new Thread(mt,"线程名");

-
//sleep()使该线程进入阻塞状态,本身不会释放锁
MyThread .sleep(millis);//毫秒数
MyThread .sleep(millis, nanos);//毫秒数+纳秒数

MyThread .yield()//放弃cpu使用权利,使该线程进入就绪状态
MyThread.getState();//获得线程状态
MyThread.currentThread();//获得正在执行的线程对象MyThread
MyThread.join();//等待该线程结束,调用该线程(MyThread)的该方法(.join())的线程(比如主线程)才能继续执行
MyThread.setDaemon(on);//设置该线程为守护线程
MyThread.isDaemon();//判断是否守护线程

2.非Thread类的常用方法和关键字

-
synchronized关键字

//代表调用该代码块的线程获取obj的锁
synchronized(obj){
    ...
}
//代表调用该代码块的线程获取method方法的锁
void synchronized method(){
    ...
}

obj.wait():
该方法在synchronized(obj)代码块中使用(synchronized(obj)中的obj和obj.wait()中的obj是同一个),调用obj对象的 wait() 方法导致调用该方法的线程阻塞,该线程被放入wait set, obj对象同步锁被该线程释放。等待其他线程将其唤醒带就绪状态。
notifyAll():
该方法在同样在synchronized(obj)代码块中使用,唤醒因为wait()方法被放入wait set的所有线程,使其变为就绪状态
notify():
同样在synchronized(obj)代码块中使用,随机唤醒一个因为wait()方法被放入wait set的所有线程,使其变为就绪状态。

退出线程:
volatile boolean keepRunning=true;//在线程内部设置退出旗标,
while(keepRunning){
......//需要线程重复处理的内容
}
在线程外将keepRunning = false,则内部线程会处理完成之后结束

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消