久久―日本道色综合久久,亚洲欧美精品在线,狼狼色丁香久久婷婷综合五月,香蕉人人超,日本网站黄,国产在线观看不卡免费高清,无遮挡的毛片免费

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來(lái),internet一定要實(shí)現(xiàn)!

Java 程序中的多線程

2004-02-15 eNet&Ciweek

  調(diào)試大量的線程
  有時(shí)一個(gè)程序因?yàn)橛写罅康木€程在運(yùn)行而極難調(diào)試。在這種情況下,下面的這個(gè)類可能會(huì)派上用場(chǎng):
  public class Probe extends Thread {
  public Probe() {}
  public void run() {
  while(true) {
  Thread[] x = new Thread[100];
  Thread.enumerate(x);
  for(int i=0; i<100; i++) {
  Thread t = x[i];
  if(t == null)
   break;
  else
   System.out.println(t.getName() + " " + t.getPriority()
   + " " + t.isAlive() + " " + t.isDaemon());
  }
  }
  }
  }

  限制線程優(yōu)先級(jí)和調(diào)度

  Java 線程模型涉及可以動(dòng)態(tài)更改的線程優(yōu)先級(jí)。本質(zhì)上,線程的優(yōu)先級(jí)是從 1 到 10 之間的一個(gè)數(shù)字,數(shù)字越大表明任務(wù)越緊急。JVM 標(biāo)準(zhǔn)首先調(diào)用優(yōu)先級(jí)較高的線程,然后才調(diào)用優(yōu)先級(jí)較低的線程。但是,該標(biāo)準(zhǔn)對(duì)具有相同優(yōu)先級(jí)的線程的處理是隨機(jī)的。如何處理這些線程取決于基層的操作系統(tǒng)策略。在某些情況下,優(yōu)先級(jí)相同的線程分時(shí)運(yùn)行;在另一些情況下,線程將一直運(yùn)行到結(jié)束。請(qǐng)記住,Java 支持 10 個(gè)優(yōu)先級(jí),基層操作系統(tǒng)支持的優(yōu)先級(jí)可能要少得多,這樣會(huì)造成一些混亂。因此,只能將優(yōu)先級(jí)作為一種很粗略的工具使用。最后的控制可以通過(guò)明智地使用 yield() 函數(shù)來(lái)完成。通常情況下,請(qǐng)不要依靠線程優(yōu)先級(jí)來(lái)控制線程的狀態(tài)?! ?

  小結(jié)
  本文說(shuō)明了在 Java 程序中如何使用線程。像是否應(yīng)該使用線程這樣的更重要的問(wèn)題在很大程序上取決于手頭的應(yīng)用程序。決定是否在應(yīng)用程序中使用多線程的一種方法是,估計(jì)可以并行運(yùn)行的代碼量。并記住以下幾點(diǎn):   

  使用多線程不會(huì)增加 CPU 的能力。但是如果使用 JVM 的本地線程實(shí)現(xiàn),則不同的線程可以在不同的處理器上同時(shí)運(yùn)行(在多 CPU 的機(jī)器中),從而使多 CPU 機(jī)器得到充分利用。

  如果應(yīng)用程序是計(jì)算密集型的,并受 CPU 功能的制約,則只有多 CPU 機(jī)器能夠從更多的線程中受益。

  當(dāng)應(yīng)用程序必須等待緩慢的資源(如網(wǎng)絡(luò)連接或數(shù)據(jù)庫(kù)連接)時(shí),或者當(dāng)應(yīng)用程序是非交互式的時(shí),多線程通常是有利的。

  基于 Internet 的軟件有必要是多線程的;否則,用戶將感覺(jué)應(yīng)用程序反映遲鈍。例如,當(dāng)開(kāi)發(fā)要支持大量客戶機(jī)的服務(wù)器時(shí),多線程可以使編程較為容易。在這種情況下,每個(gè)線程可以為不同的客戶或客戶組服務(wù),從而縮短了響應(yīng)時(shí)間?! ?

  某些程序員可能在 C 和其他語(yǔ)言中使用過(guò)線程,在那些語(yǔ)言中對(duì)線程沒(méi)有語(yǔ)言支持。這些程序員可能通常都被搞得對(duì)線程失去了信心。

  參考資料  

  請(qǐng)閱讀 Scott Oaks 和 Henry Wong 所著的《Java Threads》,以了解如何充分利用 Java 的線程功能。

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見(jiàn),請(qǐng)?jiān)谙路教峤唬x謝!

投稿信箱:tougao@enet16.com