4️⃣多线程&并发篇之上篇

多线程&并发篇的八股文

avatar 寻梦城 发表于 2024-07-15

多线程&并发篇之上篇

多线程&并发篇之上篇 master ,这是我的小站,欢迎访问哦~~ 1、说说Java中实现多线程有几种方法 创建线程的常用三种方式: 继承Thread类 实现Runnable接口 实现Callable接口( JDK1.5>=) 线程池方式创建 通过继承Thread类或者实现Runnable接口、Callable接口都可以实现多线程,不过实现Runnable接口与实现Callable接口的方式基本相同,只是Callable接口里定义的方法返回值,可以声明抛出异常而已。因此将实现Runnable接口和实现Callable接口归为一种方式。这种方式与继承Thread方式之间的主要差别如下。 采用实现Runnable、Callable接口的方式创建线程的优缺点 优点:线程类只是实现了Runnable或者Callable接口,还可以继承其他类。这种方式下,多个线程可以共享一个target对象,所以非常适合多个相同线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好的体现了面向对象的思想。 缺点:编程稍微复杂一些,如果需要访问当前线程,则必须使用Thread.currentThread() 方法 采用继承Thread类的方式创建线程的优缺点 优点:编写简单,如果需要访问当前线程,则无需使用Thread.currentThread() 方法,直接使用this即可获取当前线程 缺点:因为线程类已经继承了Thread类,Java语言是单继承的,所以就不能再继承其他父类了。 2、如何停止一个正在运行的线程 1、使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2、使用stop方法强行终止,但是不推荐这个方法,因为stop和suspend及resume一样都是过期作废的方法。 3、使用interrupt方法中断线程。 class MyThread e...

avatar 寻梦城 发表于 2024-07-15

百度图片AI工具上手:图片在线去水印、抠图、变清晰,很方便

今天发现百度图片出了个AI图片工具。就是这样。

avatar 张洪Heo 发表于 2024-07-15

在Mac上使用微信输入法的最佳解决方案,避免错误切换到ABC输入法

因为iPhone和mac之间的接力总是抽风,经常复制粘贴不好用,所以我还是全面转到稳定好用的微信输入法作为跨设备的剪切板传输工具。但是因为macOS的限制,我们可以看到: iPhone无法读取最新复制的信息 mac如果没有在微信输

avatar 张洪Heo 发表于 2024-07-15

HackChat匿名聊天室

HackCha,t匿名,聊天室

avatar 墨点白 发表于 2024-07-15

每日壁纸分享no.00001

master ,这是我的 小站, 欢迎访问哦~~ id=7180367693776751907 手机观看更佳

avatar 寻梦城 发表于 2024-07-15

每日分享no.00001

master ,这是我的 小站, 欢迎访问哦~~ id=7180367693776751907 手机观看更佳

avatar 寻梦城 发表于 2024-07-15

JVM之下篇

JVM之下篇 master ,这是我的小站,欢迎访问哦~~ 18、常见调优工具有哪些 常用调优工具分为两类,jdk自带监控工具:jconsole和jvisualvm,第三方有:MAT(Memory Analyzer Tool)、GChisto。 jconsole,Java Monitoring and Management Console是从java5开始,在JDK中自带的java监控和管理控制台,用于对JVM中内存,线程和类等的监控 jvisualvm,jdk自带全能工具,可以分析内存快照、线程快照;监控内存变化、GC变化等。 MAT,Memory Analyzer Tool,一个基于Eclipse的内存分析工具,是一个快速、功能丰富的Java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗 GChisto,一款专业分析gc日志的工具 19、Minor GC与Full GC分别在什么时候发生? 新生代内存不够用时候发生MGC也叫YGC,JVM内存不够的时候发生FGC 20、你知道哪些JVM性能调优参数?(简单版回答) 设定堆内存大小 -Xmx:堆内存最大限制。 设定新生代大小。 新生代不宜太小,否则会有大量对象涌入老年代 -XX:NewSize:新生代大小 -XX:NewRatio 新生代和老生代占比 -XX:SurvivorRatio:伊甸园空间和幸存者空间的占比 设定垃圾回收器 年轻代用 -XX:+UseParNewGC 年老代用-XX:+UseConcMarkSweepGC 21、 对象一定分配在堆中吗?有没有了解逃逸分析技术? 「对象一定分配在堆中吗?」 不一定的,JVM通过「逃逸分析」,那些逃不出方法的对象会在栈上分配。 「什么是逃逸分析?」 逃逸分析(Escape Analysis),是一种可以有效减少Java 程序中同步负载和内存堆分配压力的跨函...

avatar 寻梦城 发表于 2024-07-12