Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ВВЕДЕНИЕ. Пример разработки многопоточного приложения




Пример разработки многопоточного приложения

Этот раздел содержит описание шагов, необходимых для создания простого, но показательного примера многопоточного приложения. Для этого необходимо пытаться вычислить число "пи" с максимальной точностью после запятой. Конечно, встроенная в Delphi константа Pi имеет достаточную точность, правильнее сказать — максимальную, допускаемую самым точным 10-байтным форматом для вещественных чисел Extended. Таким образом превзойти ее не удастся. Но этот пример использования потоков может послужить прологом для решения реальных задач.

Первый пример будет содержать два потока: главный (обрабатывающий ввод пользователя) и вычислительный; мы сможем изменять их свойства и наблюдать за реакцией. Далее нужно выполнить следующую последовательность действий:

1. В среде Delphi открыть меню File и выбрать пункт New Application.

2. Расположить на форме пять меток и один переключатель, как показано на рис. 29.2.

Переименовать главную форму в fmMain.

3. Открыть меню File и выбрать пункт Save Project As. Сохранить модуль как uMain, а проект — как Threads 1.

Рис. 29.2. Внешний вид формы для приложения Threads'1

4. Открыть меню File и выбрать пункт New. Затем следует дважды щелкнуть на объекте типа поток (значок Thread Object). Откроется диалоговое окно New Items, показанное на рис. 29.3.

Рис. 29.3. Диалоговое окно New Items с выбранным объектом типа "поток"

Рис. 29.4. Диалоговое окно New Thread Object

5. Когда появится диалоговое окно для именования объекта поток, следует ввести TPiThread и нажать клавишу (рис. 29.4). Помимо этого, при желании, можно присвоить создаваемому потоку имя, установив флажок Named Thread и задав имя в поле Thread Name. Так как имя потока используется только для удобства обозначения, это возможность использоваться не будет.

Delphi создаст новый модуль и поместит в него шаблон для нового потока.

6. Код, вносимый в метод Execute, вычисляет число, используя сходимость бесконечного ряда Лейбница:

Pi = 4 - 4/3 + 4/5 - 4/7 + 4/9 -...

Разумеется, отображать новое значение после каждой итерации — это то же самое, что стрелять из пушки по воробьям. На отображение информации система потратит в десятки раз больше времени, чем на собственно вычисления. Поэтому было введено константу updatePeriod, которая регулирует периодичность отображения текущего значения.

Код метода Execute показан ниже:

const

// Лучше использовать нечетное число для того, чтобы избежать эффекта // мерцания UpdatePeriod = 1000001;

procedure TPiThread.Execute; var sign: Integer;

PiValue, PrevValue: Extended; i: Int64;

begin

{ Place thread code here } PiValue:= 4; sign:= -1; i:= 0; repeat Inc(i);

PrevValue:= PiValue;

PiValue:= PiValue + sign * 4 / (2*i+l); sign:= -sign;

if i mod UpdatePeriod = 0 then

begin

GlobalPi:= PiValue; GlobalCounter:= i; Synchronize(fmMain.UpdatePi);

end;

until Terminated or (Abs(PiValue - PrevValue)<1E-19); end;

7. Открыть меню File и выбрать пункт Save As. Сохранить модуль с потоком как uPiThread.pas.

8. Отредактировать главный файл модуля uMain.pas и добавить модуль uPiThread к списку используемых модулей в секции интерфейса. Он должен выглядеть так:

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls, uPiThread;

9. В секции public формы TfmMain нужно добавить ссылку на создаваемую нить: PiThread: TPiThread;

10. Добавить модуль uMain две глобальные переменные

GlobalPi: Extended;

GlobalCounter: Int64;

и метод UpdatePi:

procedure TfmMain.UpdatePi;

begin

if Islconic(Application.Handle) then

Exit;

LaValue.Caption:= FloatToStrF(GlobalPi, ffFixed, 18, 18);

lalterNum.Caption:= IntToStr(GlobalCounter) + ' iterations';

end;

Этот метод вызывается из потока посредством процедуры Synchronize. Он отображает текущее значение приближения к числу "пи" и количество итераций.

В случае, если главное окно приложения свернуто, отображение не производится, поэтому после его развертывания, возможно, придется подождать некоторое время для обновления.

11. Выполнить двойной щелчок на свободном месте рабочей области формы, при этом создастся шаблон метода FormCreate. Здесь будет отображаться значение системной константы р±:

procedure TfmMain.FormCreate(Sender: TObject);

begin

laBuiltln.Caption:= FloatToStrF(Pi, ffFixed, 18, 18); end;

12. Следует выбрать на форме переключатель (его название cbcalcuiate) и назначить событию Onclick код, создающий и уничтожающий вычислительный поток в зависимости от состояния переключателя:

procedure TfmMain.cbCalculateClick(Sender: TObject);

begin if cbCalculate.Checked then

begin

PiThread:= TPiThread.Create(True);

PiThread.FreeOnTerminate:= True;

PiThread.Priority:= tpLower;

PiThread.Resume; end else begin

if Assigned(PiThread) then PiThread.Terminate;

end;

end;

Таким образом, многопоточное приложение готово к запуску. Если всё пройдет нормально, можно увидеть картинку, подобную той, которая приведена на рис. 29.5.

Рис. 29.5. Выполняющееся приложение Threads1

Пока один из авторов писал текст этого раздела, запущенное одновременно приложение Threadsl выполнило пять миллиардов итераций и приблизилось к встроенному значению Pi в десятом разряде.

Этот простой пример — первый шаг в усвоении того, как от базового класса rrhread можно порождать собственные классы. Из-за своей простоты он не лишен недостатков; более того — если бы вычислительных нитей было не одна, а более, кое-какие приемы были бы даже ошибочными.

 

Заключение

 

За время выполнения курсовой работы были выполнены все поставленные задачи, то есть было спроектировано и разработано оконное многопоточное приложение с использованием SQL запросов для проверки текстового файла на имеющийся либо отсутствующий товар в базе данных. Так же были изучены методы создания и синхронизации потоков для того, чтобы уменьшить время ожидания пользователя и разрешить проблемы с взаимодействием потоков и их доступом к общим ресурсам, для правильной работы приложения.

В результате проделанной работы была создана программа, которая при помощи нескольких потоков обрабатывает заданную информацию и формирует два текстовых файла, в которых хранятся списки с имеющимися и отсутствующими наименованиями товара в базе данных.

 

 

Список литературы

1. Абакарова П.М. Учебно – методический комплекс по дисциплине «Основы предпринимательства». Махачкала, 2011г.

2. Арустамов Э. А. Основы бизнеса Издательств: Дашков и Ко,

2011г. 232стр.

3. Бочаров В.В. Инвестиции: учебник для вузов. 2-е изд. СПб.: Питер, 2008. 384 с..

4. Буров В.П., Ломакин А.Л., Морешкин В.А. Бизнес-план фирмы.

Теория и практика: Учебное пособие. М.: ИНФРА – М, 2006.- 192

5. Бучаев Г.А. Основы бизнеса. Учебник - Махачкала: Издательство «Юпитер»

6. Дмитриев А. В., Денисова Е. Н. Методические рекомендации по выполнению курсового проекта по дисциплине «Организация производства и предпринимательство в АПК». Оренбург, 2008

7. КаспианВудс. Блестящее начало. Как заложить основы и начать управление блестящим бизнесом. Издательство: ИГ "Весь", 2011 г.- 160 стр.

8. Колмыкова Т.С. Инвестиционный анализ: учеб.пособие. М.: ИНФРА-М, 2011. 204 с. (Высшее образование).

9. Круглова Н. Ю. Основы бизнеса (предпринимательства) Издательство: КноРус, 2010г.544стр.

10. Курзенин, Э. Б., Э. Э. Нестерова. Правовые основы бизнеса.

Издательство: Рид Групп, 2011 г.

11. Мазилкина Е.И. Организация работы с целевыми покупателями. Практическое пособие М: Дашков и К, 2010г., 176с.

12. Николаев М.А. Инвестиционная деятельность: учеб.пособие / М.А. Николаев. Финансы и статистика; ИНФРА-М. 2009. 336 с.

13. Просветов Г.И. Бизнес-планирование: задачи и решения: учебно-практическое пособие. 2-е изд., доп. М.: Издательство «Альфа-Пресс», 2008. 256 с.

14. Д. Рябых, А. Гладкий. Бизнес-план на практике. Опыт успеха в России. 28 реализованных бизнес-планов (+CD). Издательский дом «Питер»1-е издание, 2008 год, 208 стр. 224 стр.

15. И. Ушаков. Бизнес-план. Издательский дом «Питер» 1-е издание, 2009 год, 224 стр.

Переход к рыночной экономике вызвал значительные изменения социального положения различных групп населения, в том числе и таких, которые традиционно считались носителями передовых идей. Одно из главных мест в новых условиях принадлежит молодежи. Выбранные ее социально-правовые ориентиры во многом определяют будущее общества.

Молодежь характеризуется теми общественными отношениями и общественными формами, которые определяют ее как самостоятельную (относительно других) социально-демографическую группу. Молодежь как особая социально-демографическая группа имеет ряд особенностей, вытекающих прежде всего из самой ее объективной сущности. Социально-правовые особенности молодежи определяются ее специфической позицией, которую она занимает в процессе воспроизводства социальной структуры, а так же способностью не только наследовать, но и преобразовывать сложившиеся общественные отношения, т.е. потенциальными сущностными силами молодого человека. Противоречия, возникающие внутри этого процесса, лежат в основе целого комплекса специфических молодежных проблем.

Современное общество, в лице представителей государственной молодежной политики не всегда может своевременно реагировать на изменяющиеся потребности молодого поколения. Следовательно, для создания полноценной среды развития и адаптации молодежи в обществе должны создаваться такие программы, которые бы соответствовали бы реальным потребностям молодого поколения.

Рассмотрение и изучение вопроса адаптации молодежной политики государства к реальным потребностям молодежи и объясняет актуальность выбранной темы дипломного исследования.

Целью дипломной работы является изучение государственной молодежной политики.

Достижение поставленной цели вызывает необходимость решения следующих задач:

1. Охарактеризовать молодежь как особую социально-демографическую группу.

2. Определить круг проблем молодежи в современном обществе.

3. Дать общую характеристику молодежной политики в системе социальной политики в РФ.

4. Определить основные направления и приоритеты государственной молодежной политики.

5. Рассмотреть правовое положение федеральных органов власти по делам молодежи.

6. Охарактеризовать правовое положение региональных органов власти по делам молодежи.

7. Изучить деятельность органов местного самоуправления по делам молодежи (на примере г. Волгодонска)

Объектом дипломной работы является рассмотрение муниципальной молодежной политики, как части государственной молодежной политики.

Предметом исследования являются направления, приоритеты, проблемы, государственные органы власти, возникающие при реализации молодежной политики.

Теоретическая и методологическая основа выпускной квалификационной работы.В процессе работы использовались различные методы исследования, необходимые для решения поставленных задач. В качестве основного методологического подхода выбран программно-целевой метод управления молодежной политикой, представляющий собой один из видов планирования и управления, в основе которого лежит ориентация деятельности на достижение поставленных целей. С помощью нормативно-правового метода была рассмотрена законодательная база государственной молодежной политики.

Значительный вклад в решение задач, управления и разработки рекомендаций, в решении проблем молодежи, внесли многие отечественные ученые: Волков Ю.Г., Добреньков В.И., Зубок Ю.А., Ивойлов И.В., Карпухин О.И., Кочетков А.В., Кочнев С.В., Луков В.А., Потемкин В.К., Тощенко Ж.Т. и другие.

Однако, несмотря на значительный объем научных публикаций, посвященных проблемам молодежи, на сегодняшний день недостаточно прикладных исследований, посвященных вопросам разработки рекомендаций по решению проблем молодых людей с учетом всех специфик этой социальной группы.

Эмпирическая база ВКР. Для осуществления комплексного исследования привлекается следующие данные:

- первичные документы и материалы Федерального агентства по делам молодежи (Росмолодежь) за 2010-2014 годы по проблемам молодежи;

- первичные документы и материалы Молодежной политики Администрации города Волгодонска за 2011-2015 годы по проблемам молодежи;

- статистические данные, полученные от служб занятости;

- статистические данные, полученные от Генпрокуратуры РФ;

- данные Госкомстата, материалы Института труда и социального страхования, Министерства труда и социального развития РФ и других научно-исследовательских организаций;

Структура выпускной квалификационной работы.Работа состоит из введения, трех глав, семи параграфов, заключения, списка использованных источников, приложений.


ГЛАВА 1 ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ИЗУЧЕНИЯ МОЛОДЕЖИ




Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 615; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.047 сек.