Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Многопотночность. Интерфейс Callable, Реализация многопотности 
:(
    Опции темы
Hector88
Дата 12.11.2012, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.11.2012

Репутация: нет
Всего: нет



Здравствуйте. Задание звучит следующим образом:
Задан каталог в котором есть подкаталоги. В каждом из каталогов содержатся файлы. Необходимо создать многопоточное приложение, каждый поток которого будет работать со своим подкаталогом. Каждый поток ищет в подкаталоге .txt-файлы, которые в строке содержат  дата#тип исключения#описание( не столь важно), затем обработав каждый файл в своем подкаталоге выводит общую информацию--типы исключений за период времени. 
Задание необходимо выполнить с помощью интерфейса Callable.
Проблема-- не могу разобраться как сделать так, чтобы поиск файлов осуществлял поток.
Вот набросал поиск подкаталогов и файлов в них.
Код

import java.io.*; 

class Main { 
    String dirname="C:/1";
    
    
    void poiskVkat(String path,String dirname){
        File f1 = new File(path,dirname); 
        FilenameFilter only = new OnlyExt("txt"); 
        String s[] = f1.list(only);  
        
        for (int i=0; i < s.length; i++) { 
        System.out.println("  "+s[i]); 

        }
    }
    
    void poiskVpodkat(){
        File f1 = new File(dirname); 
        String str[]=f1.list();
    
        for (int i=0; i < str.length; i++) { 
            File f2=new File(dirname,str[i]);
            if (f2.isDirectory()){
                 System.out.println(str[i]+" Eto papka");
                 poiskVkat(dirname,str[i]);
            }
    }}
    
public static void main(String args[]) { 
    Main m=new Main();
    
    

    m.poiskVpodkat();
    
    

}}

Код

import java.io.*; 
public class OnlyExt implements FilenameFilter { 
String ext; 
public OnlyExt(String ext) { 
this.ext = "." + ext; 
} 
public boolean accept(File dir, String name) { 
return name.endsWith(ext); 
} 
}

PM MAIL   Вверх
rfq
Дата 15.11.2012, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 20.3.2007

Репутация: нет
Всего: нет



Подозреваю, что тот, кто давал вам задание, сам не знает, чего хочет. Есть разные уровни поддержки многопоточного программирования. В Jav'e самый низкий уровень - это собственно потоки (Threads), как они описаны в стандартной библиотеке. Над ним надстроен уровень задач, выполняемых пулами потоков (есть еще более высокие уровни, например, акторы, но в стандартную библиотеку они уже не входят). Именно на этом уровне находится интерфейс Callable, который в паре с Future предоставляет потокам доступ к результатам, вычисленным задачей на пуле. На уровне потоков интерфейс Callable не имеет смысла, разве что самому написать свою реализацию - но зачем, если все уже написано в java.util.concurrent. Было бы понятно, если бы в вашем задании с каждым каталогом работала задача с интерфейсом Callable, а какой-то главный поток собирал результаты с помощью Future, но у вас ясно сказано - поток.
И кстати непонятно - кто выводит общую информацию. Вы написали так, как будто ее выводит каждый поток после обработки своего подкаталога.

Это сообщение отредактировал(а) rfq - 15.11.2012, 20:16
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.