java - 多线程ThreadLocal相关求助
黄舟
黄舟 2017-04-18 09:51:54
0
5
794

当前项目的connection都是放在ThreadLocal里面的。由于我的某个功能操作有部分打算异步处理,new Thread(()->{//.......}).start() 这样就导致无法使用dao了。因为dao需要的connection在ThreadLocal中。

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(5)
小葫芦

Chaque fois que la connexion est utilisée, la connexion doit être libérée. La prochaine fois que vous vous connecterez, allez simplement sur threadlocal pour obtenir la valeur.

刘奇

Lors de la création d'un nouveau fil de discussion, supprimez la connexion de ThreadLocal et transmettez-la

左手右手慢动作

N'y a-t-il pas un moyen d'établir la connexion ?

阿神

Écrivez simplement la partie d'exécution indépendamment, vous n'avez donc pas besoin de transmettre le dao à Thread

左手右手慢动作

Si cette opération asynchrone n'est pas une transaction liée à la logique précédente. C’est-à-dire qu’ils ne sont pas dans la même transaction.
Ensuite, vous pouvez utiliser un nouveau lien.

S'il y a une transaction, il faut utiliser cet ancien lien. Cet objet de connexion ne peut être transmis qu'au thread.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal