![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面试
greenfloweryue
这个作者很懒,什么都没留下…
展开
-
由2020.8.6京东一道笔试题理解并发
下列关于并发编程错误的是:(A) A JMM内存模型包含主内存和工作内存,线程对变量的所有操作都必须在工作内存中进行。(×) B volatile关键字可以让线程之间操作主内存,从而到达可见性。(√) C volatile关键字能实现可见性并能防止指令重排。(√) D 并发编程中有原子性、可见性、有序性这三个特征来建立的。(√) 【注解】 知识点整理: (1)理解并发概念(与并行区分) 并发:同一时间段,多个任务都在执行(单位时间内不一定同时执行) 并发...原创 2020-08-07 15:34:45 · 331 阅读 · 0 评论 -
通俗易懂理解死锁以及如何避免死锁
1.理解死锁 线程死锁描述的是一种情况:多个线程被同时阻塞,他们中的一个或者全部都在等待某个资源被释放。由于线程被无限期的阻塞,因此程序无法正常终止。 eg:如下图所示,线程 A 持有资源 2,线程 B 持有资源 1,他们同时都想申请对方的资源,所以这两个线程就会互相等待而进入死锁状态。 2.产生死锁的四个必要条件 (1)互斥条件:该资源任意时刻只由一个线程占有 (理解:一个萝卜一个坑,不能一个萝卜两个坑;总结:不能共享) (2)请求与保持条件:一个进程因请求资源阻塞时,对已有资源保持.原创 2020-08-06 18:33:10 · 704 阅读 · 0 评论