Java中多线程问题

线程调度中的方法:

  1. sleep() 顾名思义线程休眠
    可传递连个参数-@毫秒 @纳秒
  2. yield() 暂时挂起 
    这里的线程会释放资源,但是有一个坑是虽然是释放资源但是是公平竞争资源 如:a线程释放资源后,可能再次获得资源 ,并不存在把资源让给另一个线程
    这里经常被误用
  3. join() 俗称加塞,即插入当前某个正在执行的某个线程里的执行逻辑,暂停正在执行的逻辑,先执行插入的线程的逻辑,然后在执行后面的逻辑

同步问题Java的解决方案:

同步方法:

      synchronized 方法声明{

        }

同步块: 

     synchronized (资源对象){

          //需要进行同步的方法

        }

注:当线程进入同步方法的时候,会获取同步方法所属的对象的锁,一旦获取对象的锁,则其他线程不能执行被锁对象的其他同步的方法。只有
在同步方法执行完毕释放锁后,其他线程才能执行。

原文地址:https://www.cnblogs.com/save-shengfei/p/6424297.html