Rumah  >  Soal Jawab  >  teks badan

java - 为什么ThreadLocal 选择在线程中使用成员变量,而不是维护一个以线程为Key,值为value的集合?

阿神阿神2765 hari yang lalu439

membalas semua(4)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-18 10:39:44

    Mengikut reka bentuk, ThreadLocal harus wujud bergantung pada kewujudan Thread Setiap thread boleh mempunyai ruang untuk penyimpanan, jadi saya sangat bersetuju dengan point kedua anda, Saya Tidak cukup boleh difahami.
    Jika anda meletakkan map dalam ThreadLocal mengikut reka bentuk anda, maka map ini mestilah daripada static (atau pembolehubah ahli dalam ThreadLocal tunggal), yang akan menyebabkan masalah serius dalam reka bentuk . , ini map akan menjadi sangat sukar untuk diuruskan:

    1. 试想有没有线程安全问题?
    2. 线程销毁后怎么处理,不做处理这个map将会越来越大?
    

    Reka bentuk mempunyai satu set kaedah, dan juga falsafah, yang mesti dinikmati dengan teliti.

    balas
    0
  • 黄舟

    黄舟2017-04-18 10:39:44

    Sekurang-kurangnya satu perkara yang saya boleh fikirkan ialah:

    Kurangkan kos pengecualian bersama

    Terdapat senario: Untuk meningkatkan prestasi DateFormat, ia biasanya digabungkan dengan ThreadLocal.

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 10:39:44

    Sesetengah reka bentuk kadangkala bukan hanya untuk prestasi Anda mesti tahu bahawa Java memberi perhatian yang paling besar kepada corak reka bentuk, dan tanggungjawab tunggal adalah salah satu prinsip yang paling penting dalam corak reka bentuk.
    Sebaliknya, bukankah lebih pantas untuk melaksanakan Peta secara langsung dalam ThreadLocal daripada menggunakan Map secara langsung Namun, ini jelas melanggar tanggungjawab tunggal dan menjadikan penyelenggaraan lebih mahal?

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:39:44

    Jika ThreadLoad secara langsung menggunakan Map<Thread, Object> sebagai struktur data asas, apabila sebilangan besar utas menggunakan ThreadLocal, pertama sekali prestasi akses Map akan berkurangan Bersama-sama dengan kitaran hayat thread, Map yang mendasari perlu ditambah dan dipadamkan dengan kerap, yang boleh menyebabkan kesesakan prestasi dengan mudah.

    balas
    0
  • Batalbalas