Dans l'application client de test, il est devenu nécessaire d'envoyer non seulement le contenu du fichier de définition dans l'ordre, mais également plusieurs en même temps. Lorsque j'ai mis les classes d'implémentation Runnable pour le traitement dans des threads séparés dans une liste et les ai implémentées dans un thread séparé, j'ai remarqué que si elles étaient exécutées dans l'ordre, elles seraient exécutées dans l'ordre.
1.Tout d'abord 2. Table des matières 3. Maintenant 4. Conclusion
J'ai uniquement utilisé Runnable comme point de départ pour le traitement à exécuter dans un autre thread, mais j'ai remarqué que si j'appelle simplement la méthode run (), le traitement sera effectué dans le même thread. ..
Runner.java
	public void start() {
		List<Runnable> runnables = new ArrayList<>();
		for (String line : getLines()) {
			runnables.add(createRunnable(line));
		}
		
		log.debug("Même exécution séquentielle de thread");
		runnables.forEach(r -> r.run());
		log.debug("Exécution simultanée de plusieurs threads");
		runnables.forEach(r -> new Thread(r).start());
	}
	private String[] getLines() {
		return new String[] {
			"Hello",
			"Hi",
			"How are you",
			"Bye"
		};
	}
	private Runnable createRunnable(String line) {
		//Le traitement à exécuter diffère selon le contenu de la ligne
		if (line.length() < 5) {
			return () -> process(line, "***");
		}
		else {
			return () -> process(line);
		}
	}
	private void process(String line) {
		log.debug(Thread.currentThread().getId() + ": "+ line);
	}
	private void process(String line, String deco) {
		process(deco + line + deco);
	}
Récemment, j'ai finalement commencé à toucher Java 8 et j'étudie. J'ai développé avec Java 6 pour la commodité des projets dans lesquels j'ai été impliqué. Nous devons changer notre façon de penser la conception des classes.