Java高并发程序设计(二)

1.线程的创建
使用Thread t=new Thread();创建线程对象
t1.start();创建这个新线程并运行这个线程中的run()方法
注:可以通过继承Thread类重写run方法来在此类中使得线程去做一些事情,但由于java是单继承的,所以最好使用Runnable接口(单方法接口,即函数式接口,只有run()方法,可以使用lamda表达式来表示)
2.线程中断
Thread.interrupt()为线程设置中断标志
Thread.isInterrupted()判断线程是否被中断
Thread.interrupted()判断线程是否被中断,并清除中断标志
3.notify()和wait()
当一个对象实例调用了obj.wait()后,会将此线程放入使用obj对象的线程等待队列中,别的线程调用obj.notify()会通知等待队列,随机选择一个线程唤醒,notifyAll()则是唤醒所有队列。这两个函数的每次操作都必须先获得此对象(obj)的监视器(我认为是锁)
4.join()和yeild()
join():调用此函数得线程会一直被阻塞,直到目标线程完成任务,一般适用于一个线程的输入依赖于其他线程的输出
yield():静态方法,使得当前线程让出CPU,与其他线程一起进行CPU资源抢占
5.守护线程
系统的守护者: Thread t= new DaemonT(); t.setDaemon(true); 设置守护进程
6.volatile关键字修饰的变量,确保某个线程修改了这个数据后,其他线程能够看到这个改动
7.sychronized :

  1. 给对象加锁
    2)给实例方法加锁,相当于给这个实例加锁
    3)给静态方法枷锁,相当于给这个类的加锁
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值