Программа запускает поток с помощью системной функции CreateThread и передает ему параметр из переменной ThreadParameter. — КиберПедия 

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Программа запускает поток с помощью системной функции CreateThread и передает ему параметр из переменной ThreadParameter.

2017-06-19 378
Программа запускает поток с помощью системной функции CreateThread и передает ему параметр из переменной ThreadParameter. 0.00 из 5.00 0 оценок
Заказать работу

В качестве потока запускается подпрограмма MyThread.

Практическая часть

//Практическое занятие № 24

//Группа xxxxxx Терминал N ФИО

#include "stdafx.h"

#include "windows.h" // win32 API

#include <locale.h> // подключение Русского языка

#include <iostream> // инструкции c++ std,cout,cin …

using namespace std; // пространство стандартных имен */

DWORD WINAPI MyThread(LPVOID lpParam) { //Поток MyThread

cout << "Parameter = " << *(DWORD*)lpParam << endl;

return 0;

}

VOID main() {

DWORD ThreadId, ThreadParameter = 10;

HANDLE hThread;

hThread = CreateThread(//Создание потока MyThread

NULL, // атрибуты безопасности по умолчанию

Размер стека по умолчанию

MyThread, // указатель на процедуру создаваемого потока

&ThreadParameter, // аргумент, передаваемый функции потока

Флаги создания по умолчанию

&ThreadId); // возвращаемый идентификатор потока

if (hThread == NULL) cout << "CreateThread failed." << endl;

getchar();

cout << "ThreadId="<<ThreadId<< endl;

CloseHandle(hThread);

}

/* При выполнении данной практической работы я освоил

*/

Практическое занятие №25

1. Краткие теоретические сведения:

Программа запускает два потока. Первый поток First Thread запускается главной программой main, второй поток SecondThread запускается системной функцией CreateThread. Оба потока выполняют подпрограмму длинного счета Calculations(). У потока SecondThread меняется приоритет с помощью системной функции SetThreadPriority и констант THREAD_PRIORITY_ABOVE_NORMAL (увеличить приоритет на единицу) или THREAD_PRIORITY_LOWEST (понизить приоритет на 2 единицы). В зависимости от приоритета поток SecondThread должен заканчиваться раньше или позже чем First Thread. В программе также использованы системные функции SuspendThread и ResumeThread для останова и запуска процесса SecondThread.

Практическая часть

//Практическое занятие № 25

//Группа xxxxxx Терминал N ФИО

#include "stdafx.h"

#include "windows.h" // win32 API

#include <locale.h> // подключение Русского языка

#include <iostream> // инструкции c++ std,cout,cin …

using namespace std; // пространство стандартных имен */

//Подпрограмма длинного счета

void Calculations() {

int i,N=50000000;

double a,b;

for (i = 0; i<N; i++) {

b=(double)i / (double)N;

a=sin(b); }

}

//Поток SecondThread

DWORD WINAPI SecondThread(LPVOID lpParam) {

cout<<endl<<"Begin of Second Thread"<<endl;

Calculations();//Длинный расчет

cout<<"End of Second Thread"<<endl;

return 0;

}

VOID main() {

DWORD dwThreadId, dwThrdParam=0;

HANDLE hThread;

hThread = CreateThread(//Создание потока SecondThread

NULL,

0,

SecondThrea d,

&dwThrdParam,

0,

&dwThreadId);

if (hThread == NULL)

{

cout<<"CreateThread failed" <<endl;

return;

}

//Повышение или понижение приоритета потока

SetThreadPriority(hThread, THREAD_PRIORITY_ABOVE_NORMAL);

//SetThreadPriority(hThread, THREAD_PRIORITY_LOWEST);

SuspendThread(hThread); //Останов потока

cout<<"Get some symbol"<<endl;

getchar();

ResumeThread(hThread); //Запуск потока

cout<<"Begin of First Thread "<<endl;

Calculations(); //длинный расчет

cout<<"End of First Thread"<<endl;

getchar();

}

/* При выполнении данной практической работы я освоил

*/

 

Лекция 11. Межпроцессный обмен

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

Введение

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

В основе межпроцессного (Inter Process Communications, IPC) обмена обычно находится разделяемый ресурс (например, канал или сегмент разделяемой памяти). Обычно такой ресурс может быть доступен всем процессам, которые знают его имя и имеют необходимые привилегии.

Кроме того, организация связи между процессами всегда предполагает установления таких ее характеристик, как:

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

· тип адресации. В случае прямой адресации информация посылается непосредственно получателю, например, процессу P-Send (P, message). В случае непрямой или косвенной адресации информация помещается в некоторый промежуточный объект, например, в почтовый ящик;

· используемая модель передачи данных - потоковая или модель сообщений (см. ниже);

· объем передаваемой информации;

· синхронность обмена данными. Если отправитель сообщения блокируется до получения этого сообщения адресатом, то обмен считается синхронным, в противном случае - асинхронным.

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


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

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.