Maison >Java >javaDidacticiel >Comment utiliser et implémenter le multithreading Java

Comment utiliser et implémenter le multithreading Java

WBOY
WBOYavant
2023-04-23 17:04:071633parcourir

1. Scénarios d'application

(1) Navigateurs ordinaires et services réseau (le réseau maintenant écrit est un composant intermédiaire qui vous aide à compléter le contrôle des threads), requêtes de traitement réseau, divers serveurs dédiés (tels que les serveurs de jeux)

( 2) servlet multithread.

(3) Téléchargement FTP, opération de fichiers multithread.

(4) Multi-threading utilisé dans la base de données.

(5) Tomcat et Tomcat utilisent le multithread en interne. Des centaines de clients accèdent à la même application WEB. Après les accès de Tomcat, le traitement ultérieur est placé dans un nouveau thread pour être traité. 6) Tâches en arrière-plan : par exemple, envoyer régulièrement des e-mails à un grand nombre d'utilisateurs (plus d'un million) ; mettre régulièrement à jour les fichiers de configuration et la planification des tâches (comme le quartz), et une certaine surveillance est utilisée pour collecter régulièrement des informations.

(7) Traitement automatique des opérations : comme la sauvegarde régulière des journaux, la sauvegarde régulière de la base de données, etc.

2. Instance

Mode délai d'attente.

Les développeurs utilisent souvent cette méthode pour appeler des scènes. Lors de l'appel d'une méthode, attendez un certain temps (généralement un délai donné). Si la méthode peut obtenir le résultat dans le délai imparti, le résultat sera renvoyé immédiatement. Au contraire, si la méthode expire, le résultat sera renvoyé immédiatement. le résultat par défaut sera renvoyé.

Une simple instance de pool de connexions à la base de données.

//java.sql.Connection是一个接口,最终的实现是由数据库驱动提供方来实现。
//我们通过动态代理构造一个Connection,仅仅用于示范。
public class ConnectionDriver {
//动态代理的处理器类
static class ConnectionHandler implements InvocationHandler{
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
Thread.sleep(100);
return null;
}
}
//创建一个Connection的代理,在commit时休眠100毫秒
public static final Connection createConnection(){
return (Connection)Proxy.newProxyInstance(ConnectionDriver.class.getClassLoader(),
new Class<?>[]{Connection.class}, new ConnectionHandler());
}
}

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer