Threads en Java y C#
By: Date: octubre 18, 2008 Categories: Programación

Threads en Java http://www.javasonicos.com/2008/10/15/threads-en-java/

He estado pensando como codificar el código que se ha puesto en Javasonicos sobre uso de Threads en Java, pues en C# se manejan algo diferente.

En el de Java se instancian 2 objetos que ademas heredad su capacidad de hilo de la clase Thread en la línea

public class ClaseThread extends Thread

En C# esto no es posible, mi clase principal no puede heredar de Thread lo que sería algo como esto

class ClaseThread : System.Threading.Thread

Por lo que mi clase principal no tiene ningun método que le permita hacer hilos obligándome a instanciar la clase y luego pasar todo el objeto a un nuevo objeto hilo

El código de Javasonicos fue:

public class ClaseThread extends Thread {
 
    public ClaseThread(String str) {
        super(str);
    }
 
    public void run() {
        for (int i = 0; i <
10; i++) {
           
System.out.println(i + ” ” + getName());
        }
        System.out.println(“Termina
El Hilo Numero ” + getName());
    }
 
    public static void main(String[] args) {
        new ClaseThread(“1”).start();
        new ClaseThread(“2”).start();
    }
}

Mi código:

using System;
using System.Threading;

class ClaseThread
    {
   
    String getName;
   
    public ClaseThread(String str) {
      
        getName = str;
    }
   
    public void run() {
       
        for (int i = 0; i < 10;
i++) {
           
System.Console.WriteLine (i + ” ” + getName);
        }
        System.Console.WriteLine
(“Termina El Hilo Numero (“+ getName +”) “);
    }
   
        public static void Main(string[]
args)
        {
            ClaseThread
objeto1 = new ClaseThread(“Hilo 1”);
            ClaseThread
objeto2 = new ClaseThread(“Hilo 2”);
           
            Thread hilo1 =
new Thread(new ThreadStart(objeto1.run));
            Thread hilo2 =
new Thread(new ThreadStart(objeto2.run));
           
           
           
            hilo1.Start();
            hilo2.Start();
           

        }
    }

Se espera la salida de este programa como:

0 Hilo 1
0 Hilo 2
1 Hilo 2
2 Hilo 2
3 Hilo 2
4 Hilo 2
5 Hilo 2
6 Hilo 2
7 Hilo 2
8 Hilo 2
9 Hilo 2
Termina El Hilo Numero (Hilo 2)
1 Hilo 1
2 Hilo 1
3 Hilo 1
4 Hilo 1
5 Hilo 1
6 Hilo 1
7 Hilo 1
8 Hilo 1
9 Hilo 1
Termina El Hilo Numero (Hilo 1)

Debido a cómo funciona C# el código puede ser reducido, pero pierde mucho mas perecido al código original de JavaSonicos

using System;
using System.Threading;

class ClaseThread
    {
    

    public void run() {
        
        for (int i = 0; i < 10;
i++) {
          
 System.Console.WriteLine (i);
        }
        System.Console.WriteLine
(“Termina El Hilo”);
    }
    
        public static void Main(string[]
args)
        {
            ClaseThread
objeto = new ClaseThread();
            
            Thread hilo1 =
new Thread(new ThreadStart(objeto.run));
            Thread hilo2 =
new Thread(new ThreadStart(objeto.run));
            
              
         
            hilo1.Start();
            hilo2.Start();
            

        }
    }

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *