Java并发编程的艺术

讲道理自己现在不知道并发是什么玩意???
感觉对什么东西都是一知半解,从synchronized,volatile关键字实现线程间内存的可见性,到JDK1.5以后发布java.util.concurrent下关于并发相关的类,自己现在弄得是一知半解,同时还会有关于读写分离的类,在什么样的场景下用什么样的类,保证线程安全。
最关键的是我现在没弄明白究竟什么是并发?
1.一个类被编译的字节码什么时候被加载?
2.当不同的请求一起请求到服务端的时候,是不是意味着服务器端都要开一个线程去处理?
3.当不同的请求同时请求到相同的方法(方法相同指的是同一个类里面方法名一样,参数和返回值类型一样)时候,执行的是同样一份字节码吗?
4.在执行同一份字节码的情况下,JVM内存模型里面讲的主内存和线程的工作内存和这份对应的字节码的关系?
5.那么多并发的问题指的是不是就是每个线程操作自己工作内存的变量的时候由于线程彼此间不可见并且变量没有加锁的情况下产生的数据最终不一致的问题?
不想了,头疼。Java并发编程的艺术