Java线程随笔(一)

创建线程:extends Thread,  implements Runnable|Callable

Thread方法: sleep睡眠、join插队到当前线程执行、yield出让CPU时间不释放对象锁、intrrupt发送中断信号不一定中断

对象方法:wait引用此对象的所有线程都等待、notify、notifyAll唤醒对象的所有线程, 提供等待通知机制,可用于实现阻塞队列

获取ID: getId线程对象的方法(通常是被调用线程的方法),Thread.getCurrentThread().getId()调用线程的方法;

synchronized: 阻塞是对象锁,一直尝试获取锁,锁的代码块一定要执行完,不会被中断

lock:可以非阻塞地获取锁,可以中断,标准写法:lock.lock();try{}finally{lock.unlock();}

ReentrantLock:可重入锁,可用于递归场景;

ReentrantReadWriteLock:读写锁,支持多个读线程,一个写线程, 获取写线程时阻塞读线程;方法writeLock获取写锁,readLock获取读锁;

Condition:await等待、awaitUninterruptibly不能被中断的等待、singal唤醒(推荐)、singalAll唤醒所有,等待唤醒如下:

        Lock lock = new ReentrantLock(); Condition cond = lock.newCondition();

 public void waitcond(){lock.lock();try{condition.await();}finally{lock.unlock();}}

 public void waitnotify(){lock.lock();try{condition.singal();}finally{lock.unlock();}}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值