1) Don't. You don't need to.
2) Still don't.
3) If you really, really do need threads, keep it as simple as possible and make sure that every access that needs to be synchronized, is synchronized.
I've been programming for a long time now and I've seen precious few cases where multithreading is legitimately a better option, let alone the only option. Usually even then it's just about using more cores.