public class Test7 {
public static void main(String[] args) {
Printer2 printer2 = new Printer2("Cat");
// Printer2.printList();
Thread thread1 = new Thread(printer2);
thread1.start();
// Printer2.printList1();
Thread thread2 = new Thread(new Printer2("Dog"));
thread2.start();
}
}
class Printer2 implements Runnable {
private String name;
public Printer2(String name) {
this.name = name;
}
@Override
public void run() {
System.out.println("I'm " + this.name);
// System.out.println("I'm " + this.name);
// printList();
}
public static void printList() {
System.out.print("Home ");
}
public static void printList1() {
System.out.print("20 years ");
}
}
Здраствуйте
есть такой код выше
Я хочу чтобы поток thread1 вызывал метод printlist()
а поток thread2 вызывал метод printlist1()
Пожалуйста помогите разобраться в многопоточности
Буду очень благодарен за Ваши ответы
P.S. Сейчас на экране
I'm Dog
I'm Cat
Они вызываются через метод public void run
Ruslan
23 уровень
Многопоточность
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Стас ПасинковSoftware Developer в ZipyMaster
30 апреля 2020, 20:23
пожалуйста, оформляйте ваш код в вопросах используя тег < code >
вы и первый, и второй тред создаете используя Printer2
то, что будет делать тред - описано именно в Printer2 в его методе run()
поэтому если вы хотите, чтобы треды выполняли разную логику - то тут либо создавать их используя разные объекты типа Runnable, у каждого из которых в методах run() будет прописана разная логика (в одном вызывать одни методы, в другом - вызывать другие).
либо если очень надо использовать объект одного и того же класса - тогда в методе run() этого класса прописать логику чтобы в одном случае вызывался один метод, а в другом - другой. но это чуть сложнее :)
0
Ruslan
30 апреля 2020, 21:55
Спасибо Стас, ты меня извини за свои вопросы ,просто я сейчас экспериментирую чтоб понять как это работает, если честно я не смог реализовать твой ответ,
Если тебе не трудно ты не мог бы изменить мой код и отправить мне (1 который по легче)
0
Стас ПасинковSoftware Developer в ZipyMaster
1 мая 2020, 03:49
нет, извините. я принципиально не даю код. только в случае когда человек не знает каким методом вывести что-то на экран - тогда без кода никак, конечно.
но я уверен тут найдутся люди, которые смогут вам написать 2 строчки кода, которые будут делать именно то, что вы хотите.
не смогли реализовать - ну бывает. вот только обычно люди задают вопросы по реализации, а вы же запросили код. поверьте, даже если вам его дать - вы вряд ли разберетесь как работает многопоточность (такие предположения сделал исходя из того, как вы опустили руки после первой же попытки).
когда я в свое время разбирался с этим - я доходил до видеозаписей конференций, где человек рассматривал время с точки зрения теоретической физики (да, это я многопоточность учил), и все-равно до сих пор не понимаю до конца как оно все работает...
а вы думаете что вам 2 строчки готового кода помогут разобраться...
нет. только практика.
0