流水线作业

来源:互联网 发布:保险单制作软件 编辑:程序博客网 时间:2024/04/28 03:04

抛出几道某度的面试题。

1、1234 1234 1234->

    static  int id=1;     public static void main(String[] args) throws InterruptedException      {          final Lock lock=new ReentrantLock();//定义一个锁          final Condition condition  =lock.newCondition();//条件等待                    //123455678910          new Thread( (Runnable) ()->          {              while(true)              {                  lock.lock();                  try                   {//                  System.out.println("aaa");                      condition.await();//刚进来就进入阻塞 状态 等待被激活                  }                   catch (InterruptedException ex)                   {                      Logger.getLogger(Demo4_流水线作业.class.getName()).log(Level.SEVERE, null, ex);                  }                                   System.out.println(id);//                  id++; //循环打印出 123455678910...                  if(id==4)                  {                      id=1;                  }                  else                  {                      id+=1;                  }                                    new  Thread(()->                  {                         try                      {                          Thread.sleep(200);                          lock.lock();                          condition.signal();//唤醒                          lock.unlock();                      } catch (InterruptedException ex) {                          Logger.getLogger(Demo4_流水线作业.class.getName()).log(Level.SEVERE, null, ex);                      }                                        }).start();                                    lock.unlock();              }             } ).start();          //          System.out.println(6666);           Thread.sleep(500);                    lock.lock();          condition.signal();//唤醒          System.out.println("主线程发出信息");          lock.unlock();     }

2、//1234  4321 1234 4321->

3、//ABCD ABCD ABCD->

后两道 哪天心情好了给解题代码。楼主今儿略困。

0 0
原创粉丝点击