Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2016, 10:22   #1
ukdug179
Пользователь
 
Регистрация: 21.09.2016
Сообщений: 13
По умолчанию Работа с потоками. Wait, notify

Нужно создать программу, реализующую работу с потоками с помощью wait, notify. Когда два потока обращаются к одному файлу по очереди для записи.
Написал программу, но работает почему-то только один поток. В чем ошибка?
Код:
import java.io.FileWriter;
import java.io.IOException;

public class ThreadA {
    public static void main(String[] args) throws InterruptedException{
        ThreadB a = new ThreadB();
        a.start(); 
        synchronized(a){
            try(FileWriter writer = new FileWriter("D:\\file.txt", false))
            {
            String text = "Первый поток";
            writer.write(text);
            writer.append('\n');                 
            writer.flush();
            a.wait();
            }
            catch(IOException ex){             
            System.out.println(ex.getMessage());
            } 
            }
            System.out.println("Первый поток");
        }
    }
 
class ThreadB extends Thread{    
   public static void main(String[] args) throws InterruptedException{
    ThreadB b = new ThreadB();
        b.start();
        synchronized(b){            
            try(FileWriter writer = new FileWriter("D:\\file.txt", false))
            {
            String text = "Второй поток";
            writer.write(text);
            writer.append('\n');                 
            writer.flush();
            b.notify();
            }
            catch(IOException ex){             
            System.out.println(ex.getMessage());
            }
            }            
         System.out.println("Второй поток");
        }
    }
ukdug179 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к файлу. wait(), notify(), notifyAll(), Runnable ukdug179 Помощь студентам 0 12.10.2016 14:23
Работа с потоками. bilibian Общие вопросы Delphi 14 22.02.2014 19:54
работа с потоками session Общие вопросы C/C++ 6 21.06.2010 17:13
работа с потоками Alex_Pro Общие вопросы .NET 1 01.07.2008 07:25
C++, работа с потоками mat90x Помощь студентам 20 15.05.2008 22:20