×ðÁú¿­Ê±

transmittablethreadlocalµÄ×÷ÓÃ

transmittablethreadlocal ÊÇÒ»ÖÖÓÃÓÚÔÚ¶àÏß³ÌÇéÐÎÖÐά»¤Ïֲ߳̾¿±äÁ¿µÄ²¢·¢¹¤¾ß £¬ËüµÄ×÷ÓðüÀ¨£º¿çÏß³Ìת´ïÊý¾Ý£»Î¬»¤Ïֲ߳̾¿ÇéÐΣ»¼ò»¯Ïß³ÌÇå¾²±à³Ì  ¡£

TransmittableThreadLocal µÄ×÷ÓÃ

TransmittableThreadLocal ÊÇÒ»ÖÖ²¢·¢±à³Ì¹¤¾ß £¬ÓÃÓÚÔÚ¶àÏß³ÌÇéÐÎÖÐά»¤Ïֲ߳̾¿±äÁ¿  ¡£Æä×÷ÓÃÊÇ£º

1. ¿çÏß³Ìת´ïÊý¾Ý

¹Å°å ThreadLocal ±äÁ¿Ö»ÔÚ½¨ÉèËüµÄÏß³ÌÖÐÓÐÓà £¬ÎÞ·¨¿çÏß³Ìת´ï  ¡£¶ø TransmittableThreadLocal ±äÁ¿¿ÉÒÔͨ¹ýÏÔʽת´ïÀ´¿çÏ̹߳²Ïí  ¡£

2. ά»¤Ïֲ߳̾¿ÇéÐÎ

TransmittableThreadLocal ±äÁ¿¿ÉÒÔΪÿ¸öÏ߳̽¨ÉèºÍά»¤Ò»¸öµ¥¶ÀµÄÊý¾Ý¸±±¾ £¬ÔÊÐíÏß³ÌÓµÓÐ×Ô¼ºµÄ˽ÓбäÁ¿ÜöÝÍ  ¡£ÕâÓë ThreadLocal ÏàËÆ £¬µ«ËüÌṩÁË¿çÏß³Ìת´ïÊý¾ÝµÄÌØÊ⹦Ч  ¡£

3. Simplifies thread-safe programming

TransmittableThreadLocal ¼ò»¯ÁËÏß³ÌÇå¾²µÄ±à³Ì  ¡£Í¨¹ýʹÓà TransmittableThreadLocal £¬¿ª·¢Ö°Ô±¿ÉÒÔÇáËɵØÔÚ²î±ðÏß³ÌÖ®¼ä¹²ÏíÊý¾Ý £¬¶øÎÞÐèµ£ÐIJ¢·¢»á¼ûºÍÊý¾ÝÒ»ÖÂÐÔµÄÎÊÌâ  ¡£

ÊÂÇéÔ­Àí

TransmittableThreadLocal ͨ¹ýÔÚÿ¸öÏß³ÌÖÐά»¤Ò»¸ö InheritableThreadLocal ±äÁ¿À´ÊÂÇé  ¡£µ±Ò»¸öÏ߳̽¨Éè TransmittableThreadLocal ¹¤¾ßʱ £¬Ëü½«½¨ÉèÒ»¸öÐ嵀 InheritableThreadLocal ±äÁ¿²¢ÓëÖ®¹ØÁª  ¡£

µ±Ïß³Ìת´ï TransmittableThreadLocal ¹¤¾ßʱ £¬InheritableThreadLocal ±äÁ¿Ò²»á±»×ª´ï £¬´Ó¶øÔÊÐí×ÓÏ̻߳á¼û¸¸Ï̵߳ÄÊý¾Ý  ¡£Ã¿¸ö×ÓÏ̶߳¼ÓÐ×Ô¼º InheritableThreadLocal µÄ¸±±¾ £¬Òò´ËËüÃÇ¿ÉÒÔ×ÔÁ¦µØÐÞ¸ÄÊý¾Ý  ¡£

ʾÀý

ÒÔÏÂÊÇÒ»¸öʾÀý £¬Õ¹Ê¾ TransmittableThreadLocal µÄÓ÷¨£º

public class Main {
    private static TransmittableThreadLocal<integer> threadLocal = new TransmittableThreadLocal();

    public static void main(String[] args) throws InterruptedException {
        // ½¨ÉèÏֲ߳̾¿±äÁ¿
        threadLocal.set(10);

        // ½¨Éè×ÓÏß³Ì
        Thread thread = new Thread(() -&gt; {
            // ×ÓÏ̻߳ñÈ¡Ïֲ߳̾¿±äÁ¿
            int value = threadLocal.get();

            // ÐÞ¸ÄÏֲ߳̾¿±äÁ¿
            value++;
            threadLocal.set(value);
        });
        thread.start();
        thread.join();

        // Ö÷Ï̻߳ñÈ¡Ïֲ߳̾¿±äÁ¿
        int value = threadLocal.get();

        // Êä³öÏֲ߳̾¿±äÁ¿
        System.out.println("Main thread value: " + value);
    }
}</integer>

µÇ¼ºó¸´ÖÆ

ÔÚÕâ¸öʾÀýÖÐ £¬Ö÷Ï߳̽¨ÉèÁËÒ»¸ö TransmittableThreadLocal ±äÁ¿²¢ÉèÖÃÆäֵΪ 10  ¡£È»ºóËü½¨ÉèÒ»¸ö×ÓÏß³Ì £¬×ÓÏ߳̿ÉÒÔ»á¼ûºÍÐÞ¸ÄÖ÷Ïß³ÌµÄ TransmittableThreadLocal ±äÁ¿  ¡£Êä³ö½«ÏÔʾ×ÓÏß³ÌÐ޸ĺóµÄÖµ £¬ÕâÅú×¢Êý¾ÝÒÑ¿çÏß³ÌÀÖ³Éת´ï  ¡£

ÒÔÉϾÍÊÇtransmittablethreadlocalµÄ×÷ÓõÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±ÂËÓÍ»úÍø¹Ù·½Ì¬¶È £¬Çë¶ÁÕß½ö×ö²Î¿¼  ¡£±¾ÎĽӴýתÔØ £¬×ªÔØÇë˵Ã÷À´ÓÉ  ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢ £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢ £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±ÊµÊ±ÐÞÕý»òɾ³ý  ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå £¬9:30-18:30 £¬½ÚãåÈÕÐÝÏ¢

QR code
¡¾ÍøÕ¾µØͼ¡¿¡¾sitemap¡¿