Pergunta

Recentemente eu li este artigo Wikipedia sobre o problema do jantar dos filósofos, mas não estou claro com Chandy / Misra solução.

De acordo com o artigo, "Quando um filósofo com um garfo recebe uma mensagem de solicitação, ele mantém o garfo se ele está limpo, mas dá-se quando está suja." No contexto desta questão, ele passa-lo se ele está comendo e mantém-lo se ele não começou a comer ainda.

De acordo com o cenário, que é o significado de sujo? Thread está sendo executado ou que tenha yeilded?

Foi útil?

Solução

meios sujos que o processamento foi iniciado para que possa ser interrompida.

E você só pode processar se você tiver dois garfos.

Outras dicas

suja parece significar 'idle' ou 'estava disponível', e os meios limpas 'teve de solicitar' ou 'antecipou-lo'.

Ele diz que uma bifurcação é 'sujo' se ele apanhou-a (o garfo não estava sustentou quando ele queria), e 'limpa' se tivesse que solicitá-lo, e que seu estado inicial está sujo.

  • Pegue um garfo disponíveis => garfo é sujo => limpá-lo e dar-lhe-se quando solicitado.

  • No garfo disponíveis => tem que perguntar para ele => receberá-lo limpo.

Isso me lembra do padrão organizacional chamado não interromper uma interrupção .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top