Rumah  >  Soal Jawab  >  teks badan

java - 多线程ThreadLocal相关求助

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

黄舟黄舟2717 hari yang lalu731

membalas semua(5)saya akan balas

  • 高洛峰

    高洛峰2017-04-18 09:53:54

    Setiap kali sambungan digunakan, sambungan mesti dilepaskan Pada kali seterusnya anda menyambung, pergi sahaja ke threadlocal untuk mendapatkan nilainya.

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 09:53:54

    Apabila membuat Thread baharu, keluarkan sambungan daripada ThreadLocal dan hantarkannya

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 09:53:54

    Adakah tiada cara untuk mendapatkan sambungan?

    balas
    0
  • 阿神

    阿神2017-04-18 09:53:54

    Cukup tulis bahagian pelaksanaan secara bebas, jadi anda tidak perlu menghantar dao kepada Thread

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 09:53:54

    Jika operasi tak segerak ini bukan transaksi yang berkaitan dengan logik sebelumnya. Maksudnya, mereka tidak berada dalam transaksi yang sama.
    Kemudian anda boleh menggunakan pautan baharu.

    Jika ada transaksi, pautan lama ini mesti digunakan. Objek sambungan ini hanya boleh dihantar ke benang.

    balas
    0
  • Batalbalas