Cet article présentera Java asynchrone, j'espère qu'il sera utile à tout le monde.
Asynchrone : Asynchrone est l'opposé de synchrone Lorsqu'un appel de procédure asynchrone est émis, l'appelant Vous pouvez continuer à effectuer des opérations ultérieures avant d'obtenir des résultats.
C'est-à-dire que peu importe le temps nécessaire à la méthode asynchrone pour exécuter le code, cela n'a aucun impact sur le thread principal et le thread principal peut continuer à s'exécuter vers le bas.
Par exemple : une conduite d'eau avec des fourchettes, la fourchette est l'entrée d'appel asynchrone.
Le port A est le fil principal et le port B est le fil auxiliaire. Lorsque quelque chose bloque le port B, cela n'affecte pas le flux d'eau à travers le port A.
Définir une interface de rappel
Une fois le code asynchrone exécuté, les résultats nécessitent souvent un certain traitement,
définissez donc une interface, utilisée pour gérer les résultats asynchrones.
/** * 定义回调接口 * @author YZQ * */ public interface MyCallback { /** * 定义处理回调方法 * @param object */ void callback(Object object); }
Définir la classe d'implémentation asynchrone
/** * 异步任务类 * @author YZQ * */ public class AsynTask { /** * 处理任务 * @param myCallback 处理完任务后的回调 */ public void task(final MyCallback myCallback){ Thread thread=new Thread(new Runnable() { @Override public void run() { try { //线程睡眠3秒,模拟该线程执行时间过长,也就是上面说的【B口有东西塞住】 Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } //完成0到99的累加 int sum=0; for(int i=0;i<p><strong>Test : </strong><br></p><pre class="brush:php;toolbar:false">/** * 测试类 * @author YZQ * */ public class Test { public static void main(String[] args) { //调用异步任务 new AsynTask().task(new MyCallback() { //实现回调方法 @Override public void callback(Object object) { System.out.println("异步回调处理:值 "+object); } }); System.out.println("主线程等待异步输出"); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } } }
On peut voir :
Le thread principal génère d'abord [Thread principal en attente de sortie asynchrone],
Ensuite, le thread auxiliaire génère [Traitement de rappel asynchrone : valeur 4950].
Recommandations d'apprentissage associées : Tutoriel de base Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!