Maison > Java > javaDidacticiel > le corps du texte

Comment utiliser et implémenter le multithreading Java

WBOY
Libérer: 2023-04-23 17:04:07
avant
1605 Les gens l'ont consulté

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());
}
}
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal