Подскажите пожалуйста где я допустил ошибку, подразумевался последовательный вывод всех пунктов, согласно номеров
public class MainClass {
public static void main(String[] args) throws InterruptedException {
ThreadA threadA = new ThreadA();
ThreadB threadB = new ThreadB();
threadA.setThreadB(threadB);
threadB.setThreadA(threadA);
threadA.start();
threadB.start();
}
}
class ThreadA extends Thread{
private Thread threadB;
public void setThreadB(ThreadB threadB) {
this.threadB = threadB;
}
@Override
public void run() {
synchronized (threadB) {
try {
synchronized (this){
System.out.println("1.Получили заказ\n");
wait();
threadB.notify();
System.out.println("3.Обдумали план действий\n");
wait();
threadB.notify();
System.out.println("5.Проконтролировали корректное выполнеие\n");
wait();
threadB.notify();
System.out.println("7.Получили деньги\n");
wait();
threadB.notify();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class ThreadB extends Thread{
private Thread threadA;
public void setThreadA(ThreadA threadA) {
this.threadA = threadA;
}
@Override
public void run() {
synchronized (threadA){
synchronized (this){
try {
wait();
System.out.println("2.Состававили ТЗ\n");
threadA.notify();
wait();
System.out.println("4.Наняли работяг\n");
threadA.notify();
wait();
System.out.println("6.Сдали работу\n");
threadA.notify();
wait();
System.out.println("8.Пошли отмечать\n");
threadA.notify();
}
catch (InterruptedException e){
e.printStackTrace();
}
}
}
}
}
Выводит только следующее: 1.Получили заказ
import sun.awt.windows.ThemeReader;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
public class MainClass {
public static void main(String[] args) throws InterruptedException {
ForSyncron forSyncron = new ForSyncron();
forSyncron.setI(0);
ThreadA threadA = new ThreadA();
ThreadB threadB = new ThreadB();
threadA.setForSyncron(forSyncron);
threadB.setForSyncron(forSyncron);
threadA.start();
Thread.sleep(10);
threadB.start();
}
}
class ForSyncron{
private int i;
public void setI(int i) {
this.i = i;
}
public int getI() {
return i;
}
}
class ThreadA extends Thread{
private ForSyncron forSyncron;
public void setForSyncron(ForSyncron forSyncron) {
this.forSyncron = forSyncron;
}
@Override
public void run() {
try {
synchronized (forSyncron){
System.out.println("1.Получили заказ\n");
forSyncron.wait();
System.out.println("3.Обдумали план действий\n");
forSyncron.notify();
forSyncron.wait();
System.out.println("5.Проконтролировали корректное выполнеие\n");
forSyncron.notify();
forSyncron.wait();
System.out.println("7.Получили деньги\n");
forSyncron.notify();
forSyncron.wait();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class ThreadB extends Thread{
private ForSyncron forSyncron;
public void setForSyncron(ForSyncron forSyncron) {
this.forSyncron = forSyncron;
}
@Override
public void run() {
synchronized (forSyncron){
try {
System.out.println("2.Состававили ТЗ\n");
forSyncron.notify();
forSyncron.wait();
System.out.println("4.Наняли работяг\n");
forSyncron.notify();
forSyncron.wait();
System.out.println("6.Сдали работу\n");
forSyncron.notify();
forSyncron.wait();
System.out.println("8.Пошли отмечать\n");
}
catch (Exception e){
e.printStackTrace();
}
}
}
}
//создать связующий объект, + на нем потестить вызов синхрон методов
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
имеется некий TabPane с несколькими табами естественно (все, за день, за неделю) внутри табов идентичная таблица по структуре но уже с разными...
есть Timestamp и формат вывода даты "EEEE, MMM dd, yyyy hh:mm a zzz", но как вывести эту дату правильной (тоесть ту что в timestamp) вместе с таймзоной? Как бы я не делал,...
К примеру необходимо что б граница у элемента (блок, кнопка) были в виде звезды, зайчика или другой произвольно нарисованной границыМожно...