Apakah ada aturan / pedoman keseluruhan untuk apa yang membuat metode thread-safe? Saya mengerti bahwa mungkin ada sejuta situasi, tetapi bagaimana dengan secara umum? Apakah ini sederhana?
- Jika metode hanya mengakses variabel lokal, itu aman untuk thread.
Itu saja? Apakah itu berlaku untuk metode statis juga?
Satu jawaban, diberikan oleh @Cybis, adalah:
Variabel lokal tidak dapat dibagi di antara utas karena setiap utas mendapat tumpukannya sendiri.
Apakah itu berlaku untuk metode statis juga?
Jika suatu metode dilewatkan objek referensi, apakah itu melanggar keselamatan thread? Saya telah melakukan beberapa penelitian, dan ada banyak di luar sana tentang kasus-kasus tertentu, tetapi saya berharap dapat mendefinisikan, dengan hanya menggunakan beberapa aturan, pedoman untuk mengikuti untuk memastikan metode aman thread.
Jadi, saya kira pertanyaan pamungkas saya adalah: "Apakah ada daftar pendek aturan yang menentukan metode thread-safe? Jika ya, apakah itu?"
EDIT
Banyak poin bagus telah dibuat di sini. Saya pikir jawaban sebenarnya untuk pertanyaan ini adalah: "Tidak ada aturan sederhana untuk memastikan keamanan thread." Keren. Baik. Tetapi secara umum saya pikir jawaban yang diterima memberikan ringkasan pendek yang bagus. Selalu ada pengecualian. Jadilah itu. Saya bisa hidup dengan itu.