Jag gör ett program som ska starta två andra program parallellt. Jag vill kuna starta dem på samma sätt som kommandotolken gör när man använder pipes. du kör: Hejsan. >Men, skriv inte processer Jo, men eftersom du vet detta om multi-trådning, så vet du ju förstås vad det innebär. Dessutom står det "parallella processer", vilket lämpligen tolkas som att de i någon betydelse körs vid sidan av varandra. Och det tycker jag är en rätt så passande beskrivning av företeelsen. Processerna existerar samtidigt (som datastrukturer i operativsystemets kärna) även om de inte exekveras samtidigt. Hade det stått "samtidiga processer" hade kritiken varit mer befogad. >Men, skriv inte processer, eftersom en dator endast kan behandla en process i taget (förutsatt attParallella processer
T.ex.
lame ljud.mp3 ljud.wav | oggenc ljud.wav
Som ni kanske ser ska programmet konvertera mp3-filer till ogg vorbis.
Om jag försöker köra ovanstående rad med ShellExecute skickas pipan ochh allt annat som ett argument till lame, och det är inte önkvärt. Vore tacksam för hjälp.
/JacobSv: Parallella processer
dim s() as str
s = split("ljud.mp3 ljud.wav | oggen ljud.wav", "|")
dim i as long
for i = 0 to ubound(s)
s(i) = "lame " & s(i)
shellexecute s(i), andra parametrar...
nextSv: Parallella processer
Inget fel angående din fråga, inte heller svaret.
Men, skriv inte processer, eftersom en dator endast kan behandla en process i taget (förutsatt att
den inte har två processorer).
MVH EBCDICSv: Parallella processer
Hm... Processer har flera betydelser; dels finns den klassiska om att det är det processorn gör och dels den om multitrådade operativsystem... ;)Sv: Parallella processer
En process i taget. Inte parallella.
(Förutsatt att parallell innebär parallellt även icke synligt för människan)
Mvh EBCDICSv: Parallella processer
Sv: Parallella processer
>den inte har två processorer).
Jo, men processer behöver ju sällan använda processorn hela tiden. I exemplet ovan kan jag tänka mig att den första processen behöver vänta lite då och då på att data skall hämtas från hårddisken. Den tiden kan ju den andra processen använda för att göra kodningen. Totalt sätt kommer det då att gå snabbare även om man bara har en processor.
Dessutom innebär ju parallella processer att man behandlar en liten bit data i taget vilket gör att datan kanske finns kvar i cacheminnet för den andra processen att använda vilket ytterligare snabbar upp behandlingen.