Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
В качестве потока запускается подпрограмма 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). В случае непрямой или косвенной адресации информация помещается в некоторый промежуточный объект, например, в почтовый ящик;
· используемая модель передачи данных - потоковая или модель сообщений (см. ниже);
· объем передаваемой информации;
· синхронность обмена данными. Если отправитель сообщения блокируется до получения этого сообщения адресатом, то обмен считается синхронным, в противном случае - асинхронным.
Кроме перечисленных у каждой связи есть еще ряд особенностей.
|
|
|
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!