摘要:
https://www.cnblogs.com/geek6/p/3951677.html https://blog.csdn.net/zhangerqing/article/details/8194653 https://www.cnblogs.com/malihe/p/6891920.html j 阅读全文
摘要:
jdk8废除永久代迎来元空间。 永久带又叫Perm区,只存在于hotspot jvm中,并且只存在于jdk7和之前的版本中,jdk8中已经彻底移除了永久带,jdk8中引入了一个新的内存区域叫metaspace。 (1)并不是所有的jvm中都有永久带,ibm的j9,oracle的JRocket都没有永 阅读全文
摘要:
1.什么是JVM?3W1H 定义: jvm是一个虚构出来的计算机,是在实际的计算机上仿真模拟出各种计算机的功能来实现的。 有什么用: Java语言最重要的特点就是跨平台运行,Java程序的跨平台特性主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,使用JVM就是为了支持与操作 阅读全文
摘要:
https://blog.csdn.net/jjwwmlp456/article/details/72771849 阅读全文
摘要:
摘自:https://www.cnblogs.com/wangchuang/p/5737188.html 任务和线程的区别: 1、任务是架构在线程之上的,也就是说任务最终还是要抛给线程去执行。 2、任务跟线程不是一对一的关系,比如开10个任务并不是说会开10个线程,这一点任务有点类似线程池,但是任务 阅读全文
摘要:
死锁: 可以认为是两个线程或进程在请求对方占有的资源。 饿死:一个线程在无限地等待另外两个或多个线程相互传递使用并且用不会释放的资源。 出现以下四种情况会产生死锁: 1,相互排斥。一个线程或进程永远占有共享资源,比如,独占该资源。 2,循环等待。例如,进程A在等待进程B,进程B在等待进程C,而进程C 阅读全文
摘要:
Callable和Runnable很类似,主要区别在于Callable能返回运行结果,能抛出异常。 执行Callable方式,需要Future的实现类的支持,用于接收运算结果。FutureTask是Future接口的实现类。 public class TestCallable { public st 阅读全文
摘要:
其他理解: 不应该只把它当作一个传参工具,它本身是为线程安全和某些特定场景的问题而设计的。 诡异的ThreadLocal最难琢磨的是“作用域”,尤其是在代码设计之初非常乱的情况下,假设再添加很多ThreadLocal。系统就会逐渐变成神龙见首不见尾的情况。使用ThreadLocal,不要简单粗暴地多 阅读全文
摘要:
是什么:等工作来了就工作 为什么:启动线程是很花费时间的工作,ThreadPool将重复使用线程,资源再利用也作为主题之一。 1.用此模式时还可以如何优化: 1.1承载量(capacity): 简单来说就是worker与request的数量要如何去平衡。 worker多了,浪费内存,worker少了 阅读全文
摘要:
通过此练习了解了线程中run()方法没有参数如何传参。 可以看出程序使用了匿名内部类。 尝试一: 以为不就是把Helper类extendsThread每次创建一个它然后启动吗。 碰到瓶颈1: 线程中没有带参数的run方法(如果想要实现带参数的run方法:1、定义线程内变量2、在继承thread的时候 阅读全文