Article View: es.comp.os.linux.programacion
Article #8036Re: Hilos en java
From: Antonio Maestre García
Date: Wed, 08 Jan 2003 12:41
Date: Wed, 08 Jan 2003 12:41
54 lines
3932 bytes
3932 bytes
J.A. Gutierrez wrote: > Antonio Maestre Garc�a <anmaegar@quitararrakis.es> wrote: > > : modo que van "rotando". En cambio en Solaris debe ser el propio hilo el > : que ceda la CPU a otro de la misma prioridad. > donde has le�do eso? > Me suena muy raro... Vamos a ver si sacamos algo en claro pq me interesa bastante. Seg�n el libro Java 2: Curso de programaci�n (Fco.Javier Ceballos-Ed. Rama) esto es as�. Inicialmente explica que la m�quina virtual aplica un algoritmo determinista basado en la prioridad, es decir, que la planificaci�n de la CPU es por derecho de prioridad (preemptive). Por tanto, cada hilo tiene asignada una prioridad, de modo que cuando varios hilos est�n en la cola de preparados se selecciona el de mayor prioridad. Solamente cuando ese hilo se detenga podr� ejecutarse uno de menor prioridad, pero si llega un nuevo hilo de mayor prioridad a la cola de preparados, entonces este se expulsa y pasa a la CPU el de mayor prioridad. �ok?. Ahora textualmente del libro: "Seg�n lo expuesto, la m�quina Java no reemplazar� el hilo actual en ejecuci�n por otro de las misma prioridad. En otras palabras, la m�quina Java no aplica una planificaci�n por cuantos, aunque la implementaci�n del sistema de hilos que subyace en la clase Thread puede soportarlos. Por tanto, no se debe escribir c�digo que dependa de cuantos, puesto que en algunas m�quinas virtuales puede funcionar (Win y Mac) y en otras no (Solaris). Despu�s de lo dicho ser�a bueno programar nuestros hilos de modo que cedieran el control voluntariamente algunas veces..." En otro p�rrafo en el que sigue hablando de hilos con la misma prioridad: "... una de las causas por las que la CPU ser� cedida a otro hilo ser� pq se supere el quantum de tiempo asignado. En este aspecto, la especificaci�n de Java da mucha libertad. Cada m�quina virtual implementa como quiere este agujero en la definici�n, cumpliendo perfectamente el est�ndar. Por ejemplo, las plataformas Win 9x/NT/2000 y Mac admiten planificaci�n por cuantos para hilos con la misma prioridad; en cambio, Solaris planifica por cooperaci�n, es decir, los hilos deben ceder voluntariamente la UCP." Consultando otro libro: Java 2 (Herbert Schildt , Ed. McGraw-Hill), viene a decir lo mismo: "....En SO como W98 los hilos se reparten autom�ticamente el tiempo mediante un algoritmo circular. En otros SO, como Solaris 2.x, los hilos deben ceder voluntariamente el control a otros de la misma prioridad. Si no lo hacen as�, estos �ltimos no se ejecutar�n..." Despu�s de todo esto, �c�mo lo hace linux?. Y lo m�s importante, si quieres portabilidad debes siempre ceder t� voluntariamente la CPU, pq seg�n esto en Windows todos los hilos se ejecutar�an pero en Solaris algunos podr�an morir de inanici�n �no? -- Saludos, Linux User #226079
Technical Details
Message-ID:
<3e1c1e32_3@news.arrakis.es>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmrro1-lo.nuria.telefonica-data.net!caladan.arrakis.esReferences:
<3e18577b_2@news.arrakis.es> <ave6f1$8pm$1@news.unizar.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,2f02ae4d24bf9df5 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-01-08 04:47:32 PST Message-ID: <3e1c1e32_3@news.arrakis.es> From: Antonio Maestre García <anmaegar@QUITARarrakis.es> Subject: Re: Hilos en java Newsgroups: es.comp.os.linux.programacion Date: Wed, 08 Jan 2003 13:41:06 +0100 References: <3e18577b_2@news.arrakis.es> <ave6f1$8pm$1@news.unizar.es> Lines: 54 Organization: --- User-Agent: KNode/0.7.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8Bit NNTP-Posting-Host: 213.9.248.126 X-Trace: caladan.arrakis.es 1042030131 213.9.248.126 (8 Jan 2003 13:48:51 +0100) X-Original-NNTP-Posting-Host: 195.5.65.34 Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!logbridge.uoregon.edu!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!nsnmrro1-lo.nuria.telefonica-data.net!caladan.arrakis.es