Click here to Skip to main content
15,912,977 members
Home / Discussions / Algorithms
   

Algorithms

 
GeneralRe: Threading problem Pin
Anthony Mushrow15-Feb-11 7:36
professionalAnthony Mushrow15-Feb-11 7:36 
GeneralRe: Threading problem Pin
Alan Balkany15-Feb-11 7:41
Alan Balkany15-Feb-11 7:41 
GeneralRe: Threading problem Pin
Anthony Mushrow15-Feb-11 7:49
professionalAnthony Mushrow15-Feb-11 7:49 
GeneralRe: Threading problem Pin
Alan Balkany15-Feb-11 8:07
Alan Balkany15-Feb-11 8:07 
GeneralRe: Threading problem Pin
Anthony Mushrow15-Feb-11 8:21
professionalAnthony Mushrow15-Feb-11 8:21 
GeneralRe: Threading problem Pin
Luc Pattyn15-Feb-11 8:57
sitebuilderLuc Pattyn15-Feb-11 8:57 
GeneralRe: Threading problem Pin
JesperMadsen12321-Feb-11 10:09
JesperMadsen12321-Feb-11 10:09 
AnswerRe: Threading problem Pin
Luc Pattyn15-Feb-11 7:57
sitebuilderLuc Pattyn15-Feb-11 7:57 
when you have a producer, a consumer, and a number (at least 2) of equivalent buffers, I find it most easy to have two queues, one holding "empty" buffers (emptied by the consumer, to be filled by the producer), one holding "full" buffers (filled by the producer, to be processed by the consumer). That is an approach that is simple to understand; it works well, it doesn't create new objects once initialized, and it doesn't really need locking, except the Queue.Dequeue operation should wait for a buffer being returned.

In pseudo-code:
// init
emptyQ=CreateQueue();
fullQ=CreateQueue();
for(N times) emptyQ.Queue(new Buffer());

// producer
forever {
    buf=emptyQ.Dequeue(); // blocking
    ...fill buf
    fullQ.Queue(buf);
}

// consumer
forever {
    buf=fullQ.Dequeue(); // blocking
    ... process buf
    emptyQ.Queue(buf);
}


Smile | :)
Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum
Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.

GeneralRe: Threading problem Pin
Anthony Mushrow15-Feb-11 8:10
professionalAnthony Mushrow15-Feb-11 8:10 
QuestionMerging sorted data blocks. Pin
Member 419459313-Feb-11 16:59
Member 419459313-Feb-11 16:59 
AnswerRe: Merging sorted data blocks. Pin
Luc Pattyn14-Feb-11 1:15
sitebuilderLuc Pattyn14-Feb-11 1:15 
AnswerRe: Merging sorted data blocks. Pin
Member 419459314-Feb-11 4:00
Member 419459314-Feb-11 4:00 
GeneralRe: Merging sorted data blocks. Pin
Stefan_Lang14-Feb-11 23:25
Stefan_Lang14-Feb-11 23:25 
GeneralRe: Merging sorted data blocks. Pin
Member 419459315-Feb-11 4:41
Member 419459315-Feb-11 4:41 
GeneralRe: Merging sorted data blocks. Pin
Stefan_Lang15-Feb-11 5:31
Stefan_Lang15-Feb-11 5:31 
GeneralRe: Merging sorted data blocks. Pin
Member 419459315-Feb-11 7:30
Member 419459315-Feb-11 7:30 
AnswerRe: Merging sorted data blocks. Pin
dasblinkenlight14-Feb-11 22:29
dasblinkenlight14-Feb-11 22:29 
GeneralRe: Merging sorted data blocks. Pin
Member 419459315-Feb-11 4:47
Member 419459315-Feb-11 4:47 
QuestionRe: Merging sorted data blocks. Pin
musefan15-Feb-11 6:22
musefan15-Feb-11 6:22 
AnswerRe: Merging sorted data blocks. Pin
Member 419459315-Feb-11 7:02
Member 419459315-Feb-11 7:02 
AnswerRe: Merging sorted data blocks. Pin
Eddy Vluggen17-Feb-11 7:47
professionalEddy Vluggen17-Feb-11 7:47 
GeneralRe: Merging sorted data blocks. Pin
Member 419459317-Feb-11 15:16
Member 419459317-Feb-11 15:16 
GeneralRe: Merging sorted data blocks. Pin
Eddy Vluggen18-Feb-11 11:29
professionalEddy Vluggen18-Feb-11 11:29 
GeneralRe: Merging sorted data blocks. Pin
Member 419459319-Feb-11 16:15
Member 419459319-Feb-11 16:15 
GeneralRe: Merging sorted data blocks. Pin
Eddy Vluggen20-Feb-11 1:29
professionalEddy Vluggen20-Feb-11 1:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.