When the threadlocal encounters a thread pool, the data between the threads interferes with each other and strings

Source: Internet
Author: User

Recently encountered a more subtle and simple problem, when using threadlocal found multiple threads in the string to string, to troubleshoot, to determine the problem is the thread pool, thread pools are reused, While threadlocal is using threads to do key, pay special attention to threadlocal when using the thread pool.
The threadlocal data is bound on the thread when the thread is created, so the workaround is to call remove () before using the data to remove the data generated by the previous thread

Workaround

Refactoring the Remove method
@Override
public void Remove () {
Super.remove ();
InitialValue ();
}
Remove first, and then initialize it again, so that the data is clean.

Of course you can also use remove in the call Finally, it is also possible.

When the threadlocal encounters a thread pool, the data between the threads interferes with each other and strings

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.