Перейти к содержимому

Фото
- - - - -

Вопрос по Threads


  • Вы не можете создать новую тему
  • Please log in to reply
4 ответов в этой теме

#1 simonsays

simonsays
  • Пользователь
  • 835 сообщений

Отправлено 10 января 2007 - 18:35

Такое вот простое задание в экзамене:
public class PrintThread1 extends Thread { 
 String name;  
 public static void main(String args[]) { 
   PrintThread1 a = new PrintThread1("*");
   PrintThread1 b = new PrintThread1("-");
   a.start(); 
   b.start(); 
 }
 public PrintThread1(String name) { 
	this.name = name; 
 } 
 public void run() {
   for (int i=1; i<4; i++) System.out.print(i+":"+name); 
 } 
}
Нужно написать, что программа выводит, по возможности все варианты. Я запускал её на 3 разных компьютерах, все три выдавали разные варианты. Хотел спросить, на самом ли деле варианты должны быть разные или это классический пример, где должен быть один ответ.
Вообще если мыслить логически, то нагрузка на оба thread одинаковая и выводится должно:
1:*,1:-,2:*,2:-.
Но выдавались и другие варианты...
  • 0

#2 shb

shb

    New life, much more options

  • Постоялец
  • 5 253 сообщений
  • Откуда:Таллинн

Отправлено 10 января 2007 - 19:00

Потоки не обязательно выполняются последовательно.
  • 0
Мыслящий человек просто обязан время от времени поднимать себя за волосы © Тот самый Мюнгхаузен

Joga Bonito!

#3 simonsays

simonsays
  • Пользователь
  • 835 сообщений

Отправлено 10 января 2007 - 19:16

то есть возможны все варианты по правилу комбинаторики?
  • 0

#4 shb

shb

    New life, much more options

  • Постоялец
  • 5 253 сообщений
  • Откуда:Таллинн

Отправлено 10 января 2007 - 19:20

Да
  • 0
Мыслящий человек просто обязан время от времени поднимать себя за волосы © Тот самый Мюнгхаузен

Joga Bonito!

#5 Акей

Акей

    Смотрит свысока

  • Постоялец
  • 2 134 сообщений

Отправлено 10 января 2007 - 19:32

simonsays, это какраз и есть классический пример того что треды выполняются каждый раз по разному, в зависимости от загрузки проца
  • 0