- 博客(8)
- 收藏
- 关注
原创 JVM参数及调优(原则上要看官方文档调优)
应用程序或系统对请求的数据进行响应的速度,对于专注于响应性的应用程序,长的暂停时间是不可接受的,重点是在短时间内做出回应。侧重于在特定时间段内最大化应用程序的工作量,对于专注于吞吐量的应用程序,高暂停时间是可接受的。java-XX:+PrintFlagsFinal-version 打印所有的-XX参数和默认值。-XX:+PrintClassHistogram 按下Ctrl+Break后,打印类的信息。-xx:permSize、-xx:metaspaceSize 永久代/元数据空间。
2023-04-24 18:04:58
54
转载 高频面试题——线程篇
偏向锁不是真的加锁, 而只是在锁的对象头中记录一个标记(记录该锁所属的线程).如果没有其他线程参与竞争锁, 那么就不会真正执行加锁操作, 从而降低程序开销.一旦真的涉及到其他的线程竞争, 再取消偏向锁状态, 进入轻量级锁状态.
2023-04-23 20:51:18
51
原创 1.1.6 线程封闭
它是一个线程级别变量,每个线程都有一个ThreadLocal就是每个线程都拥有了自己独立的一个变量竞争条件被彻底消除了,在并发模式下是绝对安全的变量。并不是所有时候,都要用到共享数据,所以线程封闭概念就提出来了。数据都被封闭在各自的线程之中,就不需要同步,这种通过将数据封闭在线程中而避免使用同步的技术称为线程封闭。可以用ThreadLocal存储一些参数,以便在线程中多个方法中使用,用来代替方法传参的做法。会自动在每一个线程上创建一个T的副本,副本之间彼此独立,互不影响。的固有属性之一就是封闭在线程中。
2023-04-22 00:43:50
34
原创 1.1.5 线程通信
线程通信通信方式文件共享网络共享共享变量JDK线程协调API通信方式线程执行先后顺序、获取线程执行结果。文件共享写文件——>读文件网络共享共享变量线程读/写共享变量JDK线程协调APIsuspend/resume(弃用) wait/notify park/unpark线程协作典型场景:生产者—消费者模型(线程阻塞、线程唤醒)wait/notify机制:只能...
2023-04-22 00:30:41
41
1
原创 1.1.4 内存屏障和CPU缓存
而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。强制读取主内存内容,让CPU缓存与主内存保持一致,避免了缓存导致的一致性问题。指令重排的场景:当CPU写缓存时发现缓存区块正被其他CPU占用,为了提高CPU处理性能,可能将后面的读缓存命令优先执行。由于L1级高速缓存容量的限制,为了再次提高CPU的运算速度,在CPU外部放置一高速存储器,即二级缓存。缓存中的数据与主内存的数据并不是实时同步的,各CPU (或CPU核心)间缓存的数据也不是实时同步。
2023-04-21 23:53:17
69
1
原创 1.1.3 线程正确终止
如果目标线程在调用Obiect class的wait()、waitlong)或wait(long,int)方法、join()、join(long,int)或sleep(long, int)方法时被阻塞,那么Interrupt会生效,该线程的中断状态将被清除,抛出InterruptedException异常。如果目标线程是被I/0 或者NIO中的hannel所阻塞,同样,I/0操作会被中断或者返回特殊异常值。Stop:中止线程,并且清除监控器锁的信息,但是可能导致线程安全问题,JDK不建议用。
2023-04-21 23:27:55
39
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人