18. Extender Thread t = new Suboptima(); t. start() ; System.out.println( “ Calculando PI”); public void run() { //Calcular PI }
19. Instanciar un Thread t = new Suboptima(); t. run() ; System.out.println( “ Calculando PI”); Si se invoca run() , se ejecuta en el mismo Thread, no se crea uno nuevo.
20.
21. Instanciar con Runnable o = new Optima(); t = new Thread(o); t. start() ; System.out.println( “ Calculando PI”); Menos confuso al ver el uso directo de Thread
22. Estados de un Thread Runnable Running New Dead Waiting / blocked / sleeping
39. Quasi-garantía Un Thread corriendo por lo general no tendrá una prioridad inferior a un Thread en estado runnable . Generalmente, si un Thread de baja prioridad está corriendo cuando un Thread de alta prioridad se vuelve runnable , la JVM pasará el Thread de baja prioridad a runnable para correr el Thread de alta prioridad.
73. Las tareas se ponen en una cola y los Threads las van tomando de ahi para ejecutarlas
74. Estructura de un Thread Pool Thread 1 Thread 2 Thread 3 Thread n r6 r1 r4 r5 r3 r2 r9 r7 r8 Aplicaciones agregan tareas a la cola... ...Threads toman la primera tarea disponible, o esperan si no hay tareas que ejecutar. Cola de tareas (Runnables)