<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    //實例一,這里面用到了信號量Semaphore和FutureTask

    package net.abin.lee.mythread.callable;

    import java.util.concurrent.Callable;
    import java.util.concurrent.Semaphore;
    import java.util.concurrent.locks.Lock;
    import java.util.concurrent.locks.ReentrantReadWriteLock;

    public class FutureGo implements Callable<String> {
     private String message;
     private static final Semaphore semaphore=new Semaphore(3);
     private final ReentrantReadWriteLock rwl=new ReentrantReadWriteLock();
     public FutureGo(String message) {
      this.message = message;
     }

     public String call() throws InterruptedException {
      semaphore.acquire();
      Lock read=rwl.readLock();
      Lock write=rwl.readLock();
      read.lock();  
      System.out.println("message"+message+",Name"+Thread.currentThread().getName()+"進來了");
      read.unlock();
      write.lock();
      String result=message+"你好!";
      Thread.sleep(1000);
      System.out.println("message"+message+"Name"+Thread.currentThread().getName()+"離開了");
      write.unlock();
      semaphore.release();
      return result;
     }
    }



    //FutureTaskTest.java

    package net.abin.lee.mythread.callable;

    import java.util.concurrent.Callable;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.FutureTask;

    public class FutureTaskTest {
     public static void main(String[] args) throws InterruptedException,
       ExecutionException {
      Callable<String> go = new FutureGo("abin");
      FutureTask<String> task = new FutureTask<String>(go);
      ExecutorService executor = Executors.newCachedThreadPool();
      if (!executor.isShutdown()) {
       executor.execute(task);
      }
      String result = "";
      if (!task.isDone()) {
       result = (String) task.get();
       System.out.println("result=" + result);
      }
       executor.shutdown();
     }

    }






    //實例一,這里面用到了信號量Semaphore和FutureTask

    posted on 2013-01-10 14:17 abin 閱讀(671) 評論(0)  編輯  收藏 所屬分類: JavaMultithread
    主站蜘蛛池模板: 1000部拍拍拍18勿入免费视频软件| 免费午夜爽爽爽WWW视频十八禁| 69pao强力打造免费高清| 免费99精品国产自在现线| 亚洲AV无码乱码在线观看牲色| 亚洲成AV人片在线观看无码| 亚洲精品又粗又大又爽A片| 四虎影视无码永久免费| 免费看美女让人桶尿口| 亚洲gv白嫩小受在线观看| 国产精品亚洲综合天堂夜夜| 久久WWW免费人成一看片| 亚洲成人黄色网址| 两个人看的www高清免费视频 | 九九免费久久这里有精品23 | 美女裸身网站免费看免费网站| 亚洲黄色网址大全| 中国毛片免费观看| 国产伦精品一区二区三区免费下载| 97亚洲熟妇自偷自拍另类图片| 色www免费视频| 性xxxx视频播放免费| 亚洲视频免费观看| 毛片免费全部免费观看| 亚洲性无码av在线| 韩国18福利视频免费观看| 人禽伦免费交视频播放| 国产极品粉嫩泬免费观看 | 亚洲色大网站WWW永久网站| 久久午夜无码免费| 亚洲线精品一区二区三区影音先锋 | 一个人免费观看www视频| 国产亚洲综合久久系列| free哆拍拍免费永久视频| 国产zzjjzzjj视频全免费| a级毛片免费高清视频| 亚洲尹人香蕉网在线视颅| 成人毛片18女人毛片免费96| 五月天婷婷免费视频| 亚洲综合一区二区精品久久| 99视频有精品视频免费观看|