Java - как вызвать поток ?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Welemir, 2 Sep 2010.

  1. Welemir

    Welemir Elder - Старейшина

    Joined:
    10 Jan 2008
    Messages:
    229
    Likes Received:
    11
    Reputations:
    -4
    Есть,к примеру,такой вот класс:

    Code:
    
    
    
    
    public class test3 {
    	
    public static void main(String args[])  {
    	
    
    	
    }
    	
    public class myt extends Thread {
    	
    int i = 0;	
    
    public void run() {	
    	
    	i++;
    	System.out.print(i);
    	
    }
    
    public void start() {
    	
    Thread worker = new Thread();
    worker.start();
    	
    	
    }
    
    
    
    }
    
    }
    
    
    

    Суть в том,чтобы инкрементировать i и постоянно выводить его значение,но вызвать метод старт не получается.Сталкиваюсь с многопоточностью в джава(да и с самим джава) совсем недавно.Знаю,что есть более продвинутые способы,нежели наследование(всякие там экзекуторы и т.д. и т.п.),но хочу разобраться именно с этим.Если у кого есть аналогичный,простой и работающий вариант с наследованием класса Thread - прошу покорно его предоставить:).

    ЗЫ: Eclipse 3.6.0;
     
  2. Catbert

    Catbert Banned

    Joined:
    29 Jun 2010
    Messages:
    80
    Likes Received:
    27
    Reputations:
    10
    В инете куча примеров...
    Code:
    class myt extends Thread 
    {
    	int i = 0;	
    
    	public void run()
    	{
    		while(true)
    		{
    			i++;
    			System.out.println(i);
    		}
    	}
    }
    
    public class Main
    {
    	public static void main(String args[]) 
    	{
    		myt trd = new myt();
    		trd.start();
    	}
    }
    
     
  3. Welemir

    Welemir Elder - Старейшина

    Joined:
    10 Jan 2008
    Messages:
    229
    Likes Received:
    11
    Reputations:
    -4
    Спасибо,работает:).Просто в статье написано было,что надо создать было метод старт и там уже писать код,а я ошибся только в том,что создал объект класса Thread,а не дочернего своего)).
     
  4. Welemir

    Welemir Elder - Старейшина

    Joined:
    10 Jan 2008
    Messages:
    229
    Likes Received:
    11
    Reputations:
    -4
    Ещё автор писал,что метод run() выполняет инструкции в бесконечном цикле,а самого цикла в примере не было...
    Тогда такой вопрос - Как создать большое количество потоков ? Кроме как циклом пробежаться по методу старт,занести в массив и поочередно вызывать,я выхода не вижу.
     
  5. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Code:
    class myt extends Thread 
    {	
    	public void run()
    	{
    		while(true)
    		{
    			int i = 0;
    			System.out.println(i++);
    		}
    	}
    }
    
    public class Main
    {
    	public static void main(String args[]) 
    	{
    		for (int i = 0; i < 10; i++)
    			(new myt()).start();
    	}
    }
     
    #5 Jingo Bo, 3 Sep 2010
    Last edited: 3 Sep 2010