>  Q&A  >  본문

java - 多线程ThreadLocal相关求助

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

黄舟黄舟2717일 전730

모든 응답(5)나는 대답할 것이다

  • 高洛峰

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

    연결을 사용할 때마다 연결을 해제해야 합니다. 다음에 연결할 때 threadlocal로 가서 값을 얻으세요.

    회신하다
    0
  • 怪我咯

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

    새 스레드를 생성할 때 ThreadLocal에서 연결을 꺼내서 전달하세요

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 09:53:54

    연결할 수 있는 방법은 없을까요?

    회신하다
    0
  • 阿神

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

    실행 부분만 독립적으로 작성하면 Thread에 dao를 전달할 필요가 없습니다

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 09:53:54

    이 비동기 작업이 이전 논리와 관련된 비트랜잭션인 경우. 즉, 그들은 동일한 거래에 속해 있지 않습니다.
    그런 다음 새 링크를 사용할 수 있습니다.

    거래가 있는 경우 이 이전 링크를 사용해야 합니다. 이 연결 개체는 스레드에만 전달될 수 있습니다.

    회신하다
    0
  • 취소회신하다