<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
    1. 全局變量num=0 
      兩個線程同時執行以下代碼 
      { 
         for(int i=0;i<50;i++){ 
            num+=1; 
         } 
       } 
        
      最終num值的范圍是什么? 


    2. 設計一個并發量100左右的系統 從服務器 應用 手段各個角度考慮  


    10

    第一題應該是 
    50到100 

    并發100的話,考慮數據庫連接池,緩存,并發安全上 使用鎖,隊列

    4 小時前
    kidding87kidding87 
    1358 
    0 0 8
    00

    引用
    + 和 =是兩個操作吧 , 不會有這種情況: 線程1的+操作正在進行, 線程2的循環結束, 線程1才開始執行=操作嗎。  

    還有int變量如果不加volatile關鍵字, 變量貌似是存放在各自的寄存器緩存里的, 而不一定什么時候才賦值給全局變量。。 有沒有可能發生 線程2num賦值為50 而線程1重新把num變為1呢。。 

    或者線程2執行到49時, 線程1賦值給全局變量1 , 此時線程2拿到的num又變為1了?
    其實差不多就是這樣子的。。。。所以答案應該是50~100 

    16 分鐘前
    asytyasyty 
    1434 
    0 0 10
    00

    用scala寫的,都是用的java的類庫,你改成java代碼就可以了,結果50-100. 

    Scala代碼  收藏代碼
    1. object SzStudy extends App {  
    2.   import java.util.LinkedList  
    3.   import java.util.concurrent._  
    4.   var num = 0  
    5.   val pool = Executors.newFixedThreadPool(2)  
    6.   val calls = new LinkedList[Callable[Unit]]();  
    7.   val call = new Callable[Unit] {  
    8.     def call() {  
    9.       for (i <- 0 to 49) {  
    10.         num += 1  
    11.       }  
    12.     }  
    13.   }  
    14.   calls.addLast(call)  
    15.   calls.addLast(call)  
    16.   val fa = pool.invokeAll(calls)  
    17.   val iter=fa.iterator  
    18.   //阻塞主線程,等兩個子線程運行完  
    19.   while(iter.hasNext){  
    20.     iter.next.get()  
    21.   }  
    22.   println(num)  
    23. }  

    30 分鐘前
    tlde_titlde_ti 
    16 
    0 0 1
    00

    要看主子線程的阻塞程度了。 
    如zhangzehao 所寫,兩個子線處理速度足夠快,那結構就是100 
    如果子線程阻塞程度高,主線程沒有阻塞那 也就是0或是1 
    總所有情況取之范圍應該會在0-100之間 

    3 小時前
    zhaoshunxinzhaoshunxin 
    202 
    0 0 1
    00

    看了回答,同志們真心不看題啊,第一題問num最后的值是多少,不是讓寫程序。 
    個人感覺是50~100,測實測 
    第二題:并發量100該如何控控制,求教高手!這個真心不懂

    3 小時前
    chairmanMaochairmanMao 
    12 
    0 0 4
    00

    public static void main(String[] args){ 

    Thread thread1 = new Thread(new Runnable() { 
    @Override 
    public void run() { 
    for(int i=0;i<50;i++){ 
    num++; 
    System.out.println(num); 


    }); 

    Thread thread2 = new Thread(new Runnable() { 
    @Override 
    public void run() { 
    for(int i=0;i<50;i++){ 
    num++; 
    System.out.println(num); 


    }); 

    thread1.start(); 
    thread2.start(); 
    }

    3 小時前
    zhangzehaozhangzehao 
    30 
    0 0 0
    00

    上面那個有點問題,保證線程2先拿到; 
    這里最后的結果就是1,,但是對于計算機來說 
    num+=1; 這里執行的時間是一樣多的,所以并不會出現線程1執行完了,線程2才執行了1步這種情況 

    Java代碼  收藏代碼
    1. static  int num =0;  
    2.   
    3. public static void c(){  
    4.     Thread t1 = new Thread(){  
    5.         @Override  
    6.         public void run() {  
    7.             try {  
    8.                 sleep(1000);  
    9.             } catch (InterruptedException e) {  
    10.                 e.printStackTrace();  
    11.             }  
    12.             for(int i=0;i<50;i++)  
    13.             num+=1;  
    14.         }  
    15.     };  
    16.       
    17.    Thread t2=   new Thread(){  
    18.         @Override  
    19.         public void run() {  
    20.             try {  
    21.                                       //線程2先拿到num,然后阻塞住  
    22.                 sleep(999);  
    23.             for(int i=0;i<50;i++){  
    24.                     int temp = num;  
    25.                     if(i==0){  
    26.                         sleep(1000);  
    27.                         temp+=1;  
    28.                         num=temp;  
    29.                     }  
    30.             }  
    31.             } catch (InterruptedException e) {  
    32.                 e.printStackTrace();  
    33.             }  
    34.         }  
    35.     };  
    36.     t1.start();  
    37.     t2.start();  
    38. }  
    39. public static void main(String[] args) {  
    40.     c();  
    41.     try {  
    42.         Thread.sleep(4000);  
    43.     } catch (InterruptedException e) {  
    44.         e.printStackTrace();  
    45.     }  
    46.     System.out.println(num);  
    47. }  

    3 小時前
    kidding87kidding87 
    1358 
    0 0 8
    00

    就算阻塞了它還是要循環的啊 
    線程2這個時間很慢,按照你說的模擬了下 

    Java代碼  收藏代碼
    1. static  int num =0;  
    2.   
    3. public static void c(){  
    4.     Thread t1 = new Thread(){  
    5.         @Override  
    6.         public void run() {  
    7.             try {  
    8.                 sleep(1000);  
    9.             } catch (InterruptedException e) {  
    10.                 e.printStackTrace();  
    11.             }  
    12.             for(int i=0;i<50;i++)  
    13.             num+=1;  
    14.         }  
    15.     };  
    16.       
    17.    Thread t2=   new Thread(){  
    18.         @Override  
    19.         public void run() {  
    20.             try {  
    21.                 sleep(1000);  
    22.             for(int i=0;i<50;i++){  
    23.                     int temp = num;  
    24.                     if(i==0){  
    25.                         sleep(1000);  
    26.                         temp+=1;  
    27.                         num=temp;  
    28.                     }  
    29.             }  
    30.             } catch (InterruptedException e) {  
    31.                 e.printStackTrace();  
    32.             }  
    33.         }  
    34.     };  
    35.     t1.start();  
    36.     t2.start();  
    37. }  
    38. public static void main(String[] args) {  
    39.     c();  
    40.     try {  
    41.         Thread.sleep(4000);  
    42.     } catch (InterruptedException e) {  
    43.         e.printStackTrace();  
    44.     }  
    45.     System.out.println(num);  
    46. }  

    3 小時前
    kidding87kidding87 
    1358 
    0 0 8
    00

    tomcat 本身 默認支持的并發為200.配和連接池,完全給解決 第一個 50
























    http://www.iteye.com/problems/84994 
























    http://www.iteye.com/problems/84994 
    posted on 2012-06-21 13:23 abin 閱讀(516) 評論(0)  編輯  收藏 所屬分類: Java Face

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品福利一区二区三区免费视频| 亚洲精品伊人久久久久| 伊人久久亚洲综合| 亚洲欧洲精品成人久久曰影片| 国产在线观看免费视频播放器| 精品国产免费观看久久久| 成人五级毛片免费播放| 99视频在线精品免费观看6| 国产精品美女午夜爽爽爽免费| 免费AA片少妇人AA片直播| 亚洲高清中文字幕免费| 成年人视频在线观看免费| 在线永久免费观看黄网站| 四虎永久免费观看| 亚洲国产精品一区二区三区久久 | 一级毛片免费不卡| 中文字幕在线成人免费看| 在线免费播放一级毛片| 91香蕉在线观看免费高清| 国产免费的野战视频| 免费毛片网站在线观看| 啊v在线免费观看| 国产成人亚洲精品91专区手机| 亚洲中文字幕无码一久久区| 亚洲gv猛男gv无码男同短文| 亚洲综合综合在线| 亚洲综合色婷婷在线观看| 亚洲国产精品成人AV在线 | 91亚洲va在线天线va天堂va国产 | 亚洲最大成人网色| 亚洲色欲色欲www| 欧洲亚洲综合一区二区三区| 成人免费视频一区二区| 免费在线黄色电影| 美女视频黄是免费的网址| 国产一级特黄高清免费大片| 亚洲色无码专区在线观看| 亚洲无圣光一区二区| 精品久久久久久亚洲中文字幕| 久久久久久噜噜精品免费直播| 99久久久国产精品免费牛牛四川|