Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SPO5

.pdf
Скачиваний:
10
Добавлен:
16.05.2015
Размер:
9.17 Mб
Скачать

51

m% 8 ( CloseHandle 1 0 / 0 !w hObject.

F . 5.1a / / 9 D (

Create Process. k D D/ / 8 Calculator ( . 5.1b 5.1c). i, D Create Process D 1 - % 9 8 / ( / 9 % ( Windows. .D-

Calculator 0" ( % % 8 02 " 1 / / 1./ 8 02 8 (2, / ( % % " (

" , 8 0" ( % 0 % 9 01 7% 8

VOID Sleep(

DWORD dwMilliseconds // ( ! 1/ 6 (, % / 2

);

k 7% 8 ( 0 1 / 06

D% .

( " !0 / " 8 0 0 9 6 -

!2 / 01 7% 8 CreateProcess 7 % dwCreationFlags 9 1 " CREATE_NEW_CONSOLE.

5.3. 2 ? 24

 

 

 

 

 

 

 

; 1 ! 9 / 0. . ( 0" ( % %

1

1

" N1 / N2 (N1 < N2) 0 / %"

1 " i . ( 1 % -

 

 

 

 

%A " 9 1/ 8 .

 

 

; 1 ! 9 / 0. . ( 0" ( 1-

2

1

/ " N1 / N2 0 / %" 1 -

" i . ( 1 % %A

 

 

 

 

" 9 1/ 8 .

 

 

 

 

 

 

 

 

 

 

52

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

; 1 ! 9 / 0. . ( 0" ( 7 -

3

1

"

N 0 / %" 1 " i-

. ( 1 % %A "

 

 

 

 

9 1/ 8 .

 

 

 

 

 

 

 

 

 

 

; 1 ! 9 / 0. . ( 0" ( 1 "-

 

 

7 %:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

=

1 +

2 +

 

 

 

 

 

 

 

4

2

 

 

 

 

 

3 + + !"

 

 

 

 

 

0 / %" 1 "

i . ( -

 

 

 

1 % %A " 9 1/

 

 

8 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

; 1 ! 9 / 0. . ( 0" ( 1 "-

 

 

7 %:

 

 

 

 

 

 

1

 

 

5

2

 

=

 

 

1

 

 

+

1

 

 

 

+ +

 

 

 

 

 

#$ 1

 

#$ 1 + #$ 2

 

#$ 1 + + #$ "

 

 

0 / %" 1 "

i . ( -

 

 

 

1 % %A " 9 1/

 

 

8 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

; 1 ! 9 / 0. . ( 0" ( 1 "-

 

 

% 0 ! " (/

%&

 

 

6

2

# % = %

&

 

 

 

%&

 

 

%&

 

 

 

 

 

 

 

+

1 + %&

+

1 + %& '

+ +

1 + %& (

+

 

 

1 / 6 " 9A 0 / %" 1 "

 

 

 

i . (

1 % %A "-

 

 

9 1/ 8 .

 

 

 

 

 

 

 

; 1 ! 9 / 0. . ( 0" ( 1 "-

 

 

% 0 ! " (/

%&

 

 

7

2

# % = %

&

 

 

 

%&

 

 

%&

 

 

 

 

 

 

 

+

1 + %&

+

1 + %& '

+ +

1 + %& (

+

 

 

1 / 6 " 9A 0 / %" 1 "

 

 

 

i . (

1 % %A "-

 

 

9 1/ 8 .

 

 

 

 

 

53

; 1 ! 9 / 0. . ( 0" ( 1 "-

% 0 ! " (/

8 2

# % = % −

%&

+

%)

6

+ + −1

(*+ %&(

+

 

3!

5!

7!

2 − 1 !

1 / 6 " 9A 0 / %" 1 "

i . ( 1 % %A "-

9 1/ 8 .

; 1 ! 9 / 0. . ( 0" ( 1 "-

% 0 ! " (/

9 2

 

&

 

'

(

(

 

# % = 1 − % + %

− %

% .−∞; 0

 

 

 

+ + −1 %

 

1 / 6 " 9A 0 / %" 1 "

i . ( 1 % %A "-

9 1/ 8 .

; 1 ! 9 / 0. . ( 0" ( 1 "-

% 0 ! " (/

10

2

1

+

1

1

+

1

1

+

1

1

+ 4 % 1; ∞

 

 

# % = 2 13

3

%'

5

%2

7

%3

1 / 6 " 9A 0 / %" 1 "

i . ( 1 % %A "-

9 1/ 8 .

; 1 ! 9 / 0. . ( 0" ( 1 "-

% 0 ! " (/

11 2

# % =

1

6% −

%'

%2

%3

 

!25

2 ∙ 3 +

2& ∙ 2! ∙ 5

2' ∙ 3! ∙ 7 + 7

1 / 6 " 9A 0 / %" 1 "

i . ( 1 % %A "-

9 1/ 8 .

54

 

 

; 1 ! 9 / 0. . ( 0" ( 1 "-

 

 

% 0 ! " (/

 

 

12

2

# % = % +

%&

+

%)

+

%8

+ +

%&(

+

 

 

 

 

2!

 

4!

6!

2 !

 

 

 

 

1 / 6 " 9A 0 / %" 1 "

 

 

i . ( 1 % %A "-

 

 

9 1/ 8 .

 

 

 

 

9 % 1 / ( % 9 "

 

 

 

/ 7 %:

 

 

 

 

 

 

 

 

1& = 1

 

 

 

 

 

 

 

 

 

13

2

2& = 1 + 3

 

 

 

 

 

 

 

 

 

 

 

3& = 1 + 3 + 5

 

 

 

 

 

 

 

 

 

 

4& = 1 + 3 + 5 + 7

 

 

 

 

 

 

 

 

&

= 1 + 3 + 5 + 7 + + 2" − 1

 

 

 

 

"

 

 

 

 

; 1 ! 9 /

0. . (

 

14

2

91 ( / %A 8%, 0" ( % %

i, D ? 2

6 / , 0-

 

 

/ 1% 9

i .

( 1 %

 

 

%A " 9 1/ 8 .

 

 

 

; 1 ! 9 / 0. . ( " 1 7 6

15

2

/ ( % 9 0 80, 1 0 -

 

 

06 7 6 2 % %. ( 1 % -

 

 

%A " 9 1/ 8 .

 

 

 

; 1 ! 9 /

0. . (

 

 

 

91 ( %, 2 (?%A 1 8 ",

 

 

0 / i 06 i i "

16

3

9A ( , / «-1211» / D / 9

 

 

0 /% «% 0 (" / / /8 9»). (

 

 

1 % %A " 9 1/ -

 

 

8 .

 

 

 

 

 

 

 

 

 

 

 

 

 

55

 

 

 

 

 

 

 

 

 

; 1 ! 9 / 0. . ( " 1 7 6

17

3

/ ( % 9 0 80, 1 0 -

 

 

06 7 6 2 1 /. ( 1 % -

 

 

%A " 9 1/ 8 .

 

 

 

; 1 ! 9 / 0. . ( " 1 7 6

 

 

/ 06 8 " 06 , % (/ "

18

4

1 A 91 A!

-

 

0 / 1% 9 0

 

 

 

 

06 7 6. ( 1 % %A

 

 

" 9 1/ 8 .

 

 

 

 

; 1 ! 9 /

0. . (

 

 

91 ( %, 2 (?%A " 1

 

 

A? 6 " 6, 0 / i 06 i-

19

4

i

"

9A

( ,

/

 

 

«

−10.13

» / D / 9 0 /% «% / ( 9

 

 

 

 

 

 

 

 

 

 

 

8 02 /8 9 02»). ( 1 % -

 

 

%A " 9 1/ 8 .

 

 

 

; 1 ! 9 / 0. . ( " 1 7 6

 

 

/ 06 / %A 8%, 0" ( % %

20

4

i, D ? 2

6 ! " 6 / -

, 0 / 1% 9

i . (

 

 

 

 

1 % %A " 9 1/ 8-

 

 

.

 

 

 

 

 

 

 

 

 

; 1 ! 9 /

0. . (

 

 

91 ( % 1 % 6 / 8 – «! %A

 

 

%», % ,

0 /

i 1 "

21

4

6 , / " / (-

 

 

" 7 0 / %" "

i .

 

 

(

1 % %A " 9

 

 

1/ 8 .

 

 

 

 

 

 

; 1 ! 9 /

0. . (

 

 

91 ( ! 11 8 ". z ( (-

22

4

( 9A / 6,

i 0 / ( 1 -

9 , !? « ( ( ( 9A

 

 

 

 

/ 6» %" . (

1 %-

 

 

%A " 9 1/ 8 .

56

( % 1 / ( 0" 6, 91%6 7%-

8 A Sleep.

5.4. + ?7 2 > ?

1.1/ 6 K /2 /(? .

2.2 1/ K (, / /% 9- 0 1 / , 1/ 6 D / ( K ( - 6 1 / ". 0 / , / %

i D (.

3.i D K 1/ 6 D ( K A?%A

%A 1 / "% 1 % D ( 8-.

5.5. " J 2 1

1.m % / /% 9 1 / (.

2.( " ( " 9.

3.5 7 6 cpp h.

4.; 1% 9 0 ( 0, / i 02 6.

5.6. ? 7 ?

1.6 8 9A 1/ A ( 8 0?

2.( 7% 8 ( %D / ( 1/ ( 8 ?

3.; D 1 " 7% 8 WaitForSingleObject.

4.; D 1 " 7% 8 CloseHandle.

5.! 1, 8 ( / ( ( - ! 0 8 D/% 1 %? 0 8 ?

57

6., .6. " 2 3 H 7- 1 ?I 7 2 J 24 " Windows.

6.1.( > ?

= 9A ! 0 ( ( ( 1 0

7% 8 ( / ( C Windows.

6.2. 21 1

. 8 D / % 9 9 9 02 % 6 -

( / . k % 10 A (

(threads). F !2 / 9, " / D / " D-

/ 9 / , 06 10 ( 0 (main threads). C/ " 0 D ( 9 ! 6

! „5, / " 9 %? ( 9 % 8-

.

; / 8 " - D ( 2 / D/% 8 , D/% , " (- ( ( 6 9 6 1 / " (multitasking). "- /, " " D / 9 06 8 - D !0 9 0 !0, " / D. C/ -, 8 (/ %" , 91 " %?-

0K i77 9 0. + / -

( / 91 , D 0 ( 9 (

1! 80, 7 7, 7 2

/ % / .

C / ( 8 ( D/% , -

8 / 9 2 / / 6 /0 / %- 6. / 8 , " / " 02 - D 6, " 0 91%A !? ! 6 -

58

(, 7 6 0 6 0 / % % 6 . k 1 " , "

91%A / D ! 9 0 0.

. D !0 9 0 0 A 0 ( 9 ( ( . 6.1). + 9 D 2 / 9 1 ( ( -

( A 0 ( !. i, D 2 / 9- ( ( D / ( (!) D/ 9 " ( / - 0 / 2 1 %A? !0 ( / % . / - 6 ! 6 ! !%/% 1 / 6 0 9 0 / -

( (.

 

 

" P Q

 

 

Q R

 

0

 

" R

 

" , % -

 

 

 

 

- B R %

 

 

) 9 CD /

S - P Q

P Q B R

T , P )

. 6.1. U % %

( 0 ( . 6.1 D 2 / 9 ( 9 /

8. .i % / ( 1 8 6 1 / " !% (

" /9 ( . 6.2) 1 ! 02 . F

. 6.2 1 " /9 , 0 !%/% 0 ( 9 ( -

/ 9: A, B, E, D, C.

C 9

 

 

 

C 9

 

C 9

 

 

C 9

 

C 9

 

 

 

 

B

 

C

 

 

D

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

0

 

0

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

. 6.2. ,

59

( 1/ ( / 1 %?-

8 %D 7% 8 ( CreateThread.

static HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpsa,

DWORD dwStackSize,

LPTHREAD_START_ROUTINE pfnThreadProc, void* pvParam,

DWORD dwCreationFlags, DWORD* pdwThreadId

)

 

 

> 26 6.1

 

. 0 7% 8 CreateThread

 

 

 

"

 

,

lpsa

 

1 9 % % %, / D ?%A !%-

 

 

0 1 ? 0

dwStackSize

 

F " 9 06 1 ! 6 2

pfnThreadProc

 

1 9 7% 8 A

pvParam

 

% 7% 8

dwCreationFlags

 

m 1/ (

pdwThreadId

 

1 9 %A, 6 !%/ -

 

 

/ 7

. 0 1%A? 6 , / -

6.1.

,2 2 H 6.1. m 6 Thread1.cpp

#include "stdafx.h" #include <windows.h> #include <iostream> #include <locale> #include <cmath>

using namespace std;

const int g_MaxThreads = 10; const int g_BufSize = 255;

60

DWORD WINAPI MyThreadFunction(LPVOID lpParam );

// ! > #

struct MyData { int numb; int val1; int val2;

double rezult;

};

int _tmain()

{

setlocale(LC_CTYPE, "Russian_Russia.1251"); ::SetConsoleTitle(L"Threads1");

MyData *pDataArray[g_MaxThreads];

HANDLE hThreadArray[g_MaxThreads];

DWORD dwThreadIdArray[g_MaxThreads];

// % ! = ! …! • . for( int i=0; i<g_MaxThreads; i++ )

{

// ‚=! ! ! =? #. pDataArray[i] = new MyData;

if( pDataArray[i] == NULL )

{

//y > g g #=!

//> # g #=

return 0;

}

pDataArray[i]->numb = i; //

pDataArray[i]->val1 = 1000 + int((double)rand()/RAND_MAX*10000);

pDataArray[i]->val2 = 1000 + int((double)rand()/RAND_MAX*10000);

}

// >! # MAX_THREADS ? #. for( int i=0; i<g_MaxThreads; i++ )

{

// >! #. hThreadArray[i] = CreateThread(

NULL,

// > P =

0,

// = >

MyThreadFunction,

// > #

pDataArray[i],

//

// • #

0,

// • >!

&dwThreadIdArray[i]); // # ># P = ! //

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]