Aziz писал(а):
Не мог бы кто-нибудь набросать пример, использующий 1, 2, 4, и более ядер процессора? А то часто встречаю оговорку что многоядерность имеет смысл лишь при программной поддержке. А как в Хиасм ее реализовать?Уже были похожие темы, вот одна из - них https://forum.hiasm.com/topic/67804/0
Всё зависит от задачи, которую ты пытаешься решить. Возможно, там и не нужна многопроцессорность.
Add(MainForm,2953706,63,119)
{
link(onCreate,11693622:doFor,[])
}
Add(For,11693622,126,133)
{
IncludeEnd=1
link(onEvent,1376284:##add,[])
link(End,12546224:CPUCount,[])
}
Add(CPU,12546224,112,77)
{
}
Add(MultiElementEx,1376284,182,133)
{
link(onEvent1,10543714:doString,[])
link(onSleep,7234084:doString,[(221,146)(221,188)])
}
BEGIN_SDK
Add(EditMultiEx,1850388,21,21)
{
WorkCount=#5:##add|
EventCount=#8:onEvent1|7:onSleep|
VarCount=#12:##eventIndex|
Width=356
Height=186
VOffset=49
Point(##add)
Point(##eventIndex)
link(##add,1643928:doEvent1,[])
}
Add(Thread,1252268,133,70)
{
Delay=0
FastStop=0
Point(doDelay)
link(onExec,1376537:doEvent1,[])
}
Add(Sleep,10787438,294,77)
{
Delay=10000000
link(onSleep,1850388:onSleep,[])
}
Add(Hub,1643928,42,70)
{
link(onEvent1,11295868:doOperation,[(67,76)(67,90)])
link(onEvent2,1252268:doStart,[(74,83)(74,76)])
}
Add(Math,11295868,84,84)
{
OpType=2
Op2=100
link(onResult,1252268:doDelay,[])
}
Add(Hub,1376537,252,70)
{
link(onEvent1,1850388:onEvent1,[])
link(onEvent2,10787438:doSleepMks,[])
}
END_SDK
Add(FormatStr,10543714,252,133)
{
DataCount=1
Mask="Start - %1"
link(onFString,16066954:doWork2,[])
link(Str1,3541374:Var1,[(258,124)(237,124)])
}
Add(FormatStr,7234084,252,182)
{
DataCount=1
Mask="Stop - %1"
link(onFString,16066954:doWork3,[(305,188)])
link(Str1,3541374:Var3,[(258,173)])
}
Add(HubEx,16066954,301,133)
{
link(onEvent,8904438:doAdd,[])
}
Add(GetDataEx,3541374,231,168)
{
Angle=3
link(Data,1376284:##eventIndex,[(188,173)])
}
Add(Memo,8904438,336,133)
{
Left=550
Top=160
Align=5
ScrollBars=3
}
Загрузка всех ядер процессора.PNG