可以做这样一个例子, 尝试编写一个程序, 让它创建100个线程, 这些线程什么都不做, 然后看看这个程序在运行时占用了多少内存.
并发编程模型
并发系统可以采用多种并发编程模型来实现....并发模型指定了系统中的线程如何通过写作来完成分配给它们的任务, 不同的并发模型采用不同的方式拆分作业, 同时线程间的写作和交互方式也不相同.
1.并性工作者模型
并行工作者模型中, 传入的作业被分配到不同的工作者上...所有原始类型的本地变量都存放在线程栈中, 一个线程可能向另一个线程传递一个原始类型变量的拷贝, 但是不能共享这个原始类型变量本身
堆上包含在 Java 程序中创建的所有对象....线程可以在获取锁超时以后主动释放之前已经获得的所有的锁, 然后等待一段时间后重试. 这段等待的时间让其他县城有机会尝试获取相同的这些锁....线程池
线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用. 因为每启动一个新线程都会有相应的性能开销, 每个线程都需要给栈分配一些内存等等.