Java面试多线程
爱吃拉面的程序狗
这个作者很懒,什么都没留下…
展开
-
Java面试题并发篇(2)
Volatile和Synchronized有什么区别?Volatile能不能保证线程安全?DCL(Double Check Lock)单例为什么要加Volatile?:Synchronized关键字,用来加锁.Volatile只是保持变量的线程可见性.通常适用于一个线程写,多个线程读的场景.Volatile关键字只能保证线程可见性,不能保证原子性. /** * 如果变量flag没有加volatile关键字,则线程无法读取到 * 主线程将变量flag修改为false(可见原创 2021-04-21 16:20:10 · 103 阅读 · 1 评论 -
Java面试题并发篇(1)
JAVA如何开启线程?怎么保证线程安全?:这是JAVA并发编程的一道入门题目,既然聊到线程,应该先说一下进程和线程的区别:进程是操作系统进行资源分配的最小单元,线程是操作系统进行任务分配的最小单元,进程隶属于进程1.继承Thread类(常用)继承Thread类,重写run方法,可以调用Thread类,start方法开启一个线程2.实现Runnable接口(常用)实现Runnable接口,实现run方法引申问题为什么JDK要有两种方法开启线程?JDK在创建之初,考虑到JAVA时单继承,多实现原创 2021-04-20 20:57:31 · 65 阅读 · 0 评论 -
Java面试题并发篇(6)
有A,B,C三个线程,如何保证三个线程同时执行?如何在并发情况下保证三个线程依次执行?如何保证三个线程有序交错执行?这道面试题,面试官是想问你多线程JUC工具类的CountDownLatch,CylicBarrier,SemaphoreCountDownLatch:countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行,可保证多条线程同时执行,同时可以模拟高并发下的场景代码示例: int size = 3; //使一个或多个线程等待其他线程各自原创 2021-04-20 13:55:38 · 173 阅读 · 0 评论