2017-07-15 85 views
1

我想知道應該在線程中運行我的函數還是在線程中編寫函數代碼! 我的均值是這樣的:在線程中運行函數或在函數中使用線程

在這裏,我用我的功能在一個線程

... 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.activity_disable_stable_mode); 
      new Thread(new Runnable() { 
       @Override 
       public void run() { 
        function1(); 
        function2(); 
        function3(); 
       } 
      }).start(); 

     } 
     void function1(){ 
     //some code 
     } 
     void function2(){ 
      //some code 
     } 
     void function3(){ 
      //some code 
     } 
    ... 

,在這裏我使用一個線程爲每個函數:

... 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_disable_stable_mode); 
     function1(); 
     function2(); 
     function3(); 

    } 
    void function1(){ 
     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       //some code 
      } 
     }).start(); 
    } 
    void function2(){ 
     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       //some code 
      } 
     }).start(); 

    void function3(){ 
     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       //some code 
      } 
     }).start(); 
    ... 

是他們是一樣的性能?

回答

0

第一樣本代碼將執行 function1()然後function2()然後function3()

在第二示例代碼

將被執行 function1()function2()function3()同時

它們不是與方法2不同的相同方法1

+0

它們是否相同性能? –

+0

我認爲你不能問這個問題,因爲他們是不同的東西 – Ali

+0

但是,如果功能不使用相同的資源,他們將相同的承諾 – Ali