摘要:
一、实例的同步方法 静态方法的同步是指同步在该方法所在的类对象(class)上。因为在 Java 虚拟机中一个类只能对应一个类对象(class实例),所以同时只允许一个线程执行同一个类中的一个静态同步方法。 对于不同类中的静态同步方法,一个线程可以执行每个类中的静态同步方法而无需等待。不管类中的那个 阅读全文
摘要:
一、Java 内存模型 java内存模型把 Java 虚拟机内部划分为线程栈和堆 下面这张图演示了调用栈和本地变量存放在线程栈上,对象存放在堆上。 ==》》 一个局部变量可能是原始类型,在这种情况下,它总是“呆在”线程栈上。 一个局部变量也可能是指向一个对象的一个引用。在这种情况下,引用(这个本地变 阅读全文
摘要:
允许被多个线程同时执行的代码称作线程安全的代码。线程安全的代码不包含竞态条件。当多个线程同时更新共享资源时会引发竞态条件。因此,了解 Java 线程执行时共享了什么资源很重要。 一、局部变量(函数内定义) 局部变量存储在线程自己的栈中。也就是说,局部变量永远也不会被多个线程共享。 1、基础类型的局部 阅读全文
摘要:
并发编程模型 一、并行工作者模型 委派者(Delegator)将传入的作业分配给不同的worker; 每个worker完成整个任务; workers并行运作在不同的线程上,甚至可能在不同的 CPU 上。 缺点: a、处理共享资源复杂; b、worker无状态,需每次重读数据,某些情况下影响性能; c 阅读全文