2017-02-10 2 views
2

Est-ce que Processor peut être à la fois coopératif et non coopératif dans un seul sommet? Parce que la coopérativité est une propriété de Processor, et le ProcessorSupplier n'est pas nécessaire pour retourner Processor s du même type. Ou est-ce?`` processeurs 'coopératifs et non coopératifs dans un seul sommet

Le cas d'utilisation de c'est bizarre et évitable, mais juste se demander ...

Répondre

1

Compte tenu de ce code dans ExecutionService:

Map<Boolean, List<Tasklet>> byCooperation = 
    tasklets.stream().collect(partitioningBy(Tasklet::isCooperative)); 

et compte tenu de la mise en œuvre de ProcessorTasklet::isCooperative:

return processor.isCooperative(); 

chaque instance de processeur sera gérée en fonction de sa coopération. Le service d'exécution ne s'intéresse en effet pas aux tasklets qui appartiennent au même sommet et traite chacun d'eux selon sa déclaration de coopération. En résumé: oui, vous pouvez avoir un mélange de processeurs coopératifs/non coopératifs pour le même sommet.