Si j'ai 3 tâches que je veux exécuter tous simultanément, il y a deux façons dont je pense à présent.Java multithread vs Shell script
Depuis que je cours le programme sous Linux, je pourrais le faire dans un script shell.
java Task1 & java Task2 & java Task3 &
ou, je pourrais utiliser un programme java pour frayer trois fils de l'enfant pour effectuer les tâches.
Je veux savoir quel est le moyen le plus efficace. Je doute que le shell crée une instance JVM multiple?
Bien sûr, le script shell créera plusieurs instances JVM - c'est ce que vous lui dites de faire. Si les tâches que vous essayez d'accomplir sont indépendantes (elles ne nécessitent pas de communication les unes avec les autres), le script shell est le plus simple (et celui qui a le plus de sens). – Cubic
Pour plus d'efficacité cela dépend de ce que vous entendez par efficace - moins de mémoire, espace d'échange, temps d'exécution, accès au disque, temps de programmation, sécurité etc .... et aussi ce que fait le code – Mark
Rappelez-vous que si vous le faites avec plusieurs threads dans une JVM, vous allez avoir des variables statiques et similaires partagées entre les threads. Sans connaître votre demande, je ne peux pas dire si ce serait un problème, mais c'est quelque chose que vous devez considérer. Si vous avez trois JVM distinctes, chacune aura ses propres variables statiques. –