|
3 / 3 / 0
Регистрация: 23.05.2010
Сообщений: 28
|
|
Потоки, classpath и ещё куча вопросов18.10.2010, 20:21. Показов 995. Ответов 7
Метки нет (Все метки)
Всем доброго дня. Так получилось, что в мои обязанности по работе вошло написание серверного приложения на не очень знакомом мне языке, а именно на java. За последние три недели учил и писал) Но возникло куча ламмерских вопросов в связи с тем, что централизованного обучения по яве я получить не могу и довольствуюсь лишь несколькими книгами. Итак:
1) Вопрос номер первый. Имею сервер по nio.*, который отсылает полученные пакеты классу разборщику пакетов, который, в свою очередь, на основе полученных пакетов делает запросы в бд через третий класс. Соответсвенно, есть три синхронизированных потока. Про синхронизацию начал читать только сегодня. Написал класс - буффер с четырьмя переменными для чтения\записи из него. Логика такая: приходит пакет, пакет передаётся потоку для разборки пакетов, при определённом условии создаётся ответный пакет, в иных случаях производится запись в бд данных из пакета. Соответственно, если на поток сервера приходят пакеты в то время, когда очередной полученный пакет разбирается, что случится с этими пакетами? 2) Насколько медленнее работают интерфейсные ссылки? 3) Представленные потоки в первом вопросе управляются одним классом, вынесеным в отдельный поток, так как необходимы еще потоки логгера(класса для записи в лог ошибок) и управления(изменения значения некоторых переменных в классах). Итого три потока, один из которых разбивается еще на три. Каждый из трёх подпотоков должен иметь доступ к потоку логгера, а поток управления должен иметь доступ ко всем остальным потокам. Как это грамотно сделать? 4) БД - PostgreSQL, хочу включить jdbc коннектор в само приложение, это возможно? Если да, то как? 5) Непосредственно по работе класса базы данных. Есть два типа исполнения запросов, executeupdate и executequery (java.net), в яве строгая типизация данных, поэтому вывод данных из SELECT запросов я вношу в LinkedList, где первый объект: массив строк с названиями столбцов, остальные объекты массивы строк, где [0] - данные из ячейки в строковом представлении, [1] - строковое представление datatype ячейки (алгоритм подсмотрел у Дунаева, чуток переделал под свои нужды). Мне кажется, что такая реализация немного через *опу сделана. Как сделать лучше? 6) Приложение должно быть разделено на две части (CUI или GUI + процесс сервера и процесс логгера). Как обеспечить работу сервера в качестве службы на Windows и Debian системах и иметь возможность управлять ими из отдельного приложения (GUI или CUI)? 7) Менее важный вопрос, куда копать в сторону значков трея у explorer.exe и gnome (можно еще и kde, но не обязательно) Если у кого возникает вопрос, нафига я на это подписался)), сразу отвечу, фирма очень маленькая, всего программистов человек пять, из которых двое пишут прошивки для выпускаемых устройств, еще один нечто среднее между сисадмином и прогерром, 4-му и так хватает работы, и мне, как молодой крови, поручили написать кросплатформенное приложение взамен существующему, а я поступился принципами KISS и теперь ломаю себе мозг)) Заранее спасибо за помощь)
0
|
|
| 18.10.2010, 20:21 | |
|
Ответы с готовыми решениями:
7
Куча вопросов Куча вопросов.... Куча вопросов.. |
|
3 / 3 / 0
Регистрация: 23.05.2010
Сообщений: 28
|
|
| 20.10.2010, 18:04 [ТС] | |
|
Ок, может, кто знает, куда копать или ответы на отдельные вопросы, буду очень признателен.
0
|
|
|
70 / 43 / 8
Регистрация: 30.10.2009
Сообщений: 101
|
|
| 20.10.2010, 18:22 | |
|
Ууу... много текста)) Мне лень читать) Нужно было темы по одному вопросу создавать)
0
|
|
|
3 / 3 / 0
Регистрация: 23.05.2010
Сообщений: 28
|
|
| 20.10.2010, 23:51 [ТС] | |
|
Семь тем? =) Меня ж за флуд съедят) А по существу, насчёт первого вопроса написал стек входящих пакетов и отдельный процесс для отсылки ответных пакетов)
0
|
|
|
3 / 3 / 0
Регистрация: 23.05.2010
Сообщений: 28
|
|
| 25.10.2010, 07:32 [ТС] | |
|
Итак, тогда пройдёмся по вопросам отдельно:
Каким образом лучше написать вывод данных из result set????
0
|
|
|
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
| 25.10.2010, 13:41 | |
|
akaish, в цикле выводить
0
|
|
|
3 / 3 / 0
Регистрация: 23.05.2010
Сообщений: 28
|
|||||||||||
| 28.10.2010, 18:21 [ТС] | |||||||||||
|
=) То, что в цикле - итак понятно. Просто неправильно выразился. Я rs собираю в коллекцию, где первый элемент - типы полей (массив), последующие - строковое представление полученных данных, что не есть хорошо, так как для некоторых типов лишние преобразования.
Да, по использованию java приложений как служб винды нашёл кучу халявнях вариантов. Добавлено через 2 часа 8 минут Очень важный для меня вопрос: как имитировать работу с беззнаковыми в яве??????
Нашёл некоторое решение:
0
|
|||||||||||
|
3 / 3 / 0
Регистрация: 23.05.2010
Сообщений: 28
|
||||||
| 29.10.2010, 19:48 [ТС] | ||||||
|
Хм, эту проблему решил, остались еще несколько.
0
|
||||||
| 29.10.2010, 19:48 | |
|
Помогаю со студенческими работами здесь
8
Тахометр и куча вопросов Куча вопросов по ШИМ. Куча моих вопросов Не запускается regedit и HiJackThis и ещё куча всего USBBIT помогите,куча вопросов!!! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|