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

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

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

    duansky'weblog

    統(tǒng)計(jì)

    留言簿(3)

    友情鏈接

    閱讀排行榜

    評(píng)論排行榜

    Java并發(fā)編程基礎(chǔ)知識(shí)片段

    Java 5并發(fā)包的加入,給Java的并發(fā)程序的開發(fā)帶來了很多的好處,在此列舉一些并發(fā)編程中應(yīng)該掌握的一些基礎(chǔ)知識(shí)片斷,這些片斷基本都是由一些問題組成,在片段中沒有直接寫出答案,由于可用來解決這些片段的方法還是很多的,因此只是提到了解決問題可選方案的關(guān)鍵字,如果有需要進(jìn)一步了解的話,基本上google一下應(yīng)該就能查出來了,不過就像之前有朋友說的,如果不是經(jīng)常用的話,其實(shí)就算現(xiàn)在知道了也是會(huì)忘記的,這很正常,:),不過我更認(rèn)為那是因?yàn)橹淙欢恢渌匀辉斐傻模芏鄸|西如果知道原理的話,基本上還是可以記得很長(zhǎng)一段時(shí)間的。
    片斷一
    在main中啟動(dòng)兩個(gè)線程,例如:
    ??? Thread a=new Thread(){
    ??????? public void run(){
    ???????????? System.out.println("Call A");
    ???????????? try{
    ????????????????? Thread.sleep(1000);
    ???????????? }
    ???????????? catch(Exception e){
    ???????????????? e.printStackTrace();
    ???????????? }
    ??????? }
    ??? };
    ??? Thread b=new Thread(){
    ??????? public void run(){
    ???????????? try{
    ????????????????? Thread.sleep(500);
    ???????????? }
    ???????????? catch(Exception e){
    ???????????????? e.printStackTrace();
    ???????????? }
    ???????????? System.out.println("Call B");
    ??????? }
    ??? };???
    ??? a.start();
    ??? b.start();???
    ??? System.out.println("execute here");
    在這樣的方式下,執(zhí)行時(shí)會(huì)出現(xiàn)什么樣的效果;
    怎么樣才能保證字符串的打印順序是:"Call B"-->"Call A"-->"execute here"呢?(提示:join、wait/notify、Semphore、Lock等)
    在做到了上面打印順序控制后,怎么樣才能做到如果線程b執(zhí)行了100毫秒還沒執(zhí)行完的話則直接繼續(xù)線程a的執(zhí)行呢?(提示:ExecutorServices、Future)
    片段二
    也是個(gè)控制順序的問題,假設(shè)有如下一段代碼:
    for(int i=0;i<10;i++){
    ??? Thread thread=new Thread(){
    ??????? public void run(){
    ??????????? ...
    ??????? }
    ??? };
    ??? thread.setName("Thread-"+i);
    ??? thread.start();
    }
    System.out.println("All Executed");
    需要做到所有線程同時(shí)運(yùn)行,而不是按照for的順序一個(gè)一個(gè)啟動(dòng),并且要求All Executed需要在所有線程都執(zhí)行完畢后才打印,有什么辦法做到呢?(提示:CountDownLatch等)
    片段三
    Map<String,Object> datas=new ConcurrentHashMap<String,Object>();
    public Object get(String keyName){
    ??? Object data=null;
    ??? if(!datas.containsKey(keyName)){
    ???????? data=createData(keyName);
    ???????? datas.put(keyName,data);
    ??? }
    ??? else{
    ???????? data=datas.get(keyName;)
    ??? }
    ??? return data;
    }
    上面這段代碼在并發(fā)時(shí)會(huì)出什么問題呢,為什么?
    如果有問題的話,應(yīng)該怎么去解決呢?(提示:Synchronized、Lock、FutureTask等)
    片段四
    ThreadPoolExecutor executor=new ThreadPoolExecutor(10,100,60L,TimeUnit.SECONDS,new LinkedBlockingQueue<Runnable>(20),new ThreadPoolExecutor.AbortPolicy());
    一個(gè)這樣的線程池,當(dāng)并發(fā)請(qǐng)求數(shù)為15時(shí)會(huì)是怎么個(gè)狀況?(池的使用狀況,例如活動(dòng)線程數(shù)、隊(duì)列中的數(shù)等)
    當(dāng)并發(fā)請(qǐng)求數(shù)為100的時(shí)候是什么狀況?
    當(dāng)并發(fā)請(qǐng)求數(shù)為200的時(shí)候是什么狀況?
    當(dāng)30秒內(nèi)不再有請(qǐng)求時(shí)會(huì)怎么樣?
    當(dāng)2分鐘內(nèi)沒有請(qǐng)求時(shí)會(huì)怎么樣?
    如果換成以下方式初始化池又會(huì)怎么樣呢:
    ThreadPoolExecutor executor=new ThreadPoolExecutor(10,150,20L,TimeUnit.SECONDS,new SynchronousQueue<Runnable>(),new ThreadPoolExecutor.AbortPolicy());
    片段五
    怎么查看jvm中線程的執(zhí)行狀況,線程的狀態(tài)有哪幾種,分別表示什么含義?
    ThreadFactory有什么用?
    如果要捕捉線程中拋出的異常,可以怎么做呢?
    如果TimerTask拋出運(yùn)行時(shí)異常會(huì)不會(huì)影響到同一個(gè)Timer中其他的TimerTask的執(zhí)行呢,SchedularThreadPoolExecutor和Timer有什么不同?
    片段六
    常見的一個(gè)例子:
    private int count;
    public synchronized int getNext(){
    ??? return count++;
    }
    在JDK5有什么別的方法來進(jìn)行實(shí)現(xiàn)嗎?
    像JDK5中的AtomicInteger的incrementAndGet是怎么實(shí)現(xiàn)的呢?
    如果這個(gè)count要按線程來獨(dú)立管理,即每個(gè)線程有自己的一個(gè)count,要怎么做呢?

    轉(zhuǎn)自: http://www.tkk7.com/BlueDavy/archive/2008/06/20/209297.html

    posted on 2009-06-18 22:06 duansky 閱讀(181) 評(píng)論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲国产成人乱码精品女人久久久不卡 | 免费毛片在线播放| 国产亚洲情侣久久精品| 亚洲精品无码AV人在线播放| 青青草无码免费一二三区| 亚洲AV无码久久久久网站蜜桃| 免费真实播放国产乱子伦| 最近2019中文免费字幕在线观看 | caoporm碰最新免费公开视频| 亚洲国产精品久久66| 免费被黄网站在观看| a毛片免费在线观看| 亚洲不卡中文字幕| 中文字幕在亚洲第一在线| 亚洲一区在线免费观看| 免费无遮挡无遮羞在线看| 亚洲色欲或者高潮影院| 免费a级毛片18以上观看精品| 99热在线观看免费| 免费看黄网站在线看 | 亚洲国产精品无码久久| 亚洲Av综合色区无码专区桃色 | 亚洲春黄在线观看| 香蕉视频亚洲一级| 亚洲国产精品无码专区影院| 女人毛片a级大学毛片免费| 久久久久国色av免费看| 西西人体大胆免费视频| 亚洲精品不卡视频| 永久免费毛片在线播放| 中文在线观看永久免费| 亚洲AV无码专区亚洲AV桃| 伊人久久综在合线亚洲2019| 亚洲国产精品无码久久久久久曰| 无码人妻久久一区二区三区免费丨| 中文字幕一区二区免费| 免费夜色污私人影院网站| 中文字幕在线观看亚洲日韩| 亚洲视频精品在线观看| 久久青青草原亚洲AV无码麻豆| 国产成人亚洲综合无码|