JAVA并发篇
文章平均质量分 55
samuBO
qwer asdf
展开
-
java对象内存布局及对象大小
new Object()到底占用几个字节翻译 2022-03-12 17:01:33 · 2337 阅读 · 1 评论 -
为什么说创建Java线程的方式本质上只有一种
public class HowToCreateThread { static class MyThread extends Thread { @Override public void run() { System.out.println("Hello MyThread!"); } } static class MyRun implements Runnable { @Override原创 2022-03-11 00:14:14 · 290 阅读 · 0 评论 -
对CAS事的理解及一些面试题
定义:CAS操作包含三个操作数一内存位置 (V)、期望值(A) 和新值(B)。如果内存位置的值与期望值匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不作任何操作。无论哪种情况,它都会在CAS指令之前返回该位置的值。(CAS在一些特殊情况下仅返回CAS是否成功,而不提取当前值) CAS有效的说明了“我认为位置V应该包含值A;如果包含该值,则将B放到这个位置;否则,不要更改该位置的值,只告诉我这个位置现在的值即可。”:怎么使用JDK提供的CAS支持?A: java中提供了对CAS操作原创 2021-11-03 12:00:00 · 447 阅读 · 0 评论 -
线程调用start 和 run 什么区别?会有什么效果
start()它的作用是启动一个新线程。通过start()方法来(private native void start0();)启动的新线程,处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行相应线程的run()方法,这里方法run()称为线程体,它包含了要执行的这个线程的内容,run方法运行结束,此线程随即终止。start()不能被重复调用。用start方法来启动线程,真正实现了多线程运行,即无需等待某个线程的run方法体代码执行完毕就直接继续执行下面的代码。这里无需等待run方法.原创 2021-10-12 08:24:16 · 1208 阅读 · 0 评论 -
JAVA如何开启线程?怎么保证线程安全?
**线程和进程的区别:**进程是操作系统进行资源分配的最小单元。线程是操作系统进行任务分配的最小单元,线程隶属于进程。如何开启线程?1、继承Thread类,重写run方法。2、实现Runnable接口,实现 run方法。3、实现Callable接口,实现call方法。通过FutureTask创建一个线程,获 取到线程执行的返回值。4、通过线程池来开启线程。怎么保证线程安全?主要通过加锁来解决线程安全问题:1、 JVM提供的锁,也就是Synchronized关键字。2、 JDK提供的各种锁原创 2021-09-23 00:39:38 · 273 阅读 · 0 评论