Вверх ↑
Ответов: 60
Рейтинг: 0
#1: 2020-10-08 17:50:33 ЛС | профиль | цитата
Получается, если к sleep добавить расчеты в оригинальную схему, то sleep выполняется на нескольких ядрах, а расчеты все равно на одном.

Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,21,105)
{
Width=971
Height=384
Caption="Wait for Multiple Objects"
Position=1
link(onCreate,13804482:doEvent1,[])
}
Add(Button,3342741,280,112)
{
Left=70
Top=15
Width=115
Caption="Start"
Data=String(ABCDEF)
link(onClick,1818191:doEvent1,[])
}
Add(Memo,13572209,1386,126)
{
Left=30
Top=45
Width=210
Height=275
ScrollBars=3
}
Add(Thread,9400599,441,112)
{
Delay=0
FastStop=0
link(onExec,8425095:doEvent1,[])
}
Add(Hub,8425095,490,112)
{
link(onEvent1,904911:doData,[(518,118)(518,76)])
link(onEvent2,3421083:doSleepMks,[(515,125)(515,181)])
}
Add(DoData,904911,532,70)
{
Data=String(Thread 1 started)
link(onEventData,16034504:doWork1,[(1306,76)])
}
Add(Hub,1818191,329,112)
{
OutCount=4
link(onEvent1,9400599:doStart,[])
link(onEvent2,2883773:doStart,[(392,125)(392,321)])
link(onEvent3,3610323:doStart,[(378,132)(378,496)])
link(onEvent4,14099663:doStart,[(363,139)(363,706)])
}
Add(Thread,2883773,441,315)
{
Delay=0
FastStop=0
link(onExec,10699036:doEvent1,[])
}
Add(Hub,10699036,490,315)
{
link(onEvent1,7555254:doData,[(518,321)(518,279)])
link(onEvent2,2324382:doSleepMks,[(623,328)(623,363)])
}
Add(DoData,7555254,532,273)
{
Data=String(Thread 2 started)
link(onEventData,12965505:doWork1,[(1257,279)])
}
Add(Thread,3610323,448,490)
{
Delay=0
FastStop=0
link(onExec,7190319:doEvent1,[])
}
Add(Hub,7190319,497,490)
{
link(onEvent1,15436954:doData,[(525,496)(525,454)])
link(onEvent2,10619522:doSleepMks,[(616,503)(616,524)])
}
Add(DoData,15436954,539,448)
{
Data=String(Thread 3 started)
link(onEventData,16526341:doWork1,[(1236,454)])
}
Add(LineBreakEx,12358704,917,259)
{
Caption="H1"
Type=3
link(_Data,5953648:ObjHandle,[])
}
Add(LineBreakEx,11815744,903,427)
{
Caption="H2"
Type=3
link(_Data,9593067:ObjHandle,[])
}
Add(LineBreakEx,16371797,896,602)
{
Caption="H3"
Type=3
link(_Data,13923820:ObjHandle,[])
}
Add(LineBreakEx,4797077,588,630)
{
Caption="H1"
Type=2
}
Add(LineBreakEx,12999161,595,651)
{
Caption="H2"
Type=2
}
Add(LineBreakEx,777119,602,672)
{
Caption="H3"
Type=2
}
Add(WaitMultiple,7791455,588,700)
{
Count=3
link(onWait,12294071:doData,[])
link(Handle1,4797077:getVar,[])
link(Handle2,12999161:getVar,[])
link(Handle3,777119:getVar,[])
}
Add(DoData,12294071,658,700)
{
Data=String(ALL THREADS FINISHED)
link(onEventData,13345728:doAdd,[])
}
Add(Thread,14099663,490,700)
{
Delay=0
FastStop=0
link(onExec,7791455:doWait,[])
}
Add(Events,9593067,903,385)
{
Name=""
ManualReset=1
}
Add(Events,5953648,917,217)
{
Name=""
ManualReset=1
}
Add(Events,13923820,896,560)
{
Name=""
ManualReset=1
}
Add(LineBreak,16210513,875,217)
{
Caption="cr1"
link(Out,5953648:doCreate,[])
Primary=[3562615,-721,-98]
}
Add(LineBreak,14877521,854,385)
{
Caption="cr2"
link(Out,9593067:doCreate,[])
Primary=[11905685,-728,-259]
}
Add(LineBreak,9131974,854,560)
{
Caption="cr3"
link(Out,13923820:doCreate,[])
Primary=[13581513,-700,-427]
}
Add(Hub,13804482,91,119)
{
OutCount=3
link(onEvent1,3562615:In,[])
link(onEvent2,11905685:In,[])
link(onEvent3,13581513:In,[])
}
Add(For,9245367,770,175)
{
IncludeEnd=1
link(onEvent,12256453:doOperation,[])
link(onStop,5953648:doSet,[(860,188)(860,230)])
link(End,5403546:Var2,[])
}
Add(Math,12256453,994,175)
{
link(onResult,976171:doValue,[(1123,181)(1123,167)])
link(Op1,9245367:Position,[(1000,163)(888,163)(888,219)(776,219)])
link(Op2,976171:Value,[(1007,163)(1095,163)(1095,205)(1182,205)])
}
Add(Memory,976171,1176,161)
{
Point(Data)
link(onData,16034504:doWork2,[(1248,167)(1248,132)])
}
Add(Edit,8564700,777,28)
{
Left=15
Top=15
}
Add(For,15157217,742,357)
{
IncludeEnd=1
link(onEvent,10619049:doOperation,[])
link(onStop,9593067:doSet,[(838,370)(838,398)])
link(End,151197:Var2,[])
}
Add(Math,10619049,966,357)
{
link(onResult,12718577:doValue,[(1095,363)(1095,349)])
link(Op1,15157217:Position,[(972,345)(860,345)(860,401)(748,401)])
link(Op2,12718577:Value,[(979,345)(1067,345)(1067,387)(1154,387)])
}
Add(Memory,12718577,1148,343)
{
Point(Data)
link(onData,12965505:doWork2,[(1218,349)(1218,293)])
}
Add(GetDataEx,5403546,777,140)
{
link(Data,8564700:Text,[])
}
Add(For,6553458,721,518)
{
IncludeEnd=1
link(onEvent,16677086:doOperation,[])
link(onStop,13923820:doSet,[(825,531)(825,573)])
link(End,151197:Var1,[(734,306)])
}
Add(Math,16677086,945,518)
{
link(onResult,13916257:doValue,[(1074,524)(1074,510)])
link(Op1,6553458:Position,[(951,506)(839,506)(839,562)(727,562)])
link(Op2,13916257:Value,[(958,506)(1046,506)(1046,548)(1133,548)])
}
Add(Memory,13916257,1127,504)
{
Point(Data)
link(onData,16526341:doWork2,[(1191,510)(1191,503)])
}
Add(GetDataEx,151197,749,301)
{
link(Data,5403546:Var1,[(755,145)])
}
Add(Memo,4980667,1316,287)
{
Left=255
Top=45
Width=215
Height=275
ScrollBars=3
}
Add(Memo,4524147,1274,497)
{
Left=480
Top=45
Width=230
Height=275
ScrollBars=3
}
Add(Memo,13345728,798,700)
{
Left=725
Top=45
Width=220
Height=275
ScrollBars=3
}
Add(HubEx,16034504,1302,126)
{
link(onEvent,13572209:doAdd,[])
}
Add(HubEx,12965505,1253,287)
{
link(onEvent,4980667:doAdd,[])
}
Add(HubEx,16526341,1232,497)
{
link(onEvent,4524147:doAdd,[])
}
Add(Sleep,3421083,616,175)
{
Delay=20000000
link(onSleep,9245367:doFor,[])
}
Add(Sleep,2324382,644,357)
{
Delay=20000000
link(onSleep,15157217:doFor,[])
}
Add(Sleep,10619522,630,518)
{
Delay=20000000
link(onSleep,6553458:doFor,[])
}

карма: 1

0