为了避免死锁,可以在应用程序的体系架构中一开始就设计好锁定顺序,也可以为锁定定义超时时间 ...
分类:
其他好文 时间:
2017-11-13 18:24:52
阅读次数:
125
多线程使用共享变量,就会涉及到一个线程同步的问题。那如何解决呢? 1) 重构程序,移除多线程的共享变量,让一个线程只访问一个自有变量 2) 使用原子操作,一个操作只占用一个量子时间,一次完成,只有当当前操作完成之后,其他线程才能进行操作。这样可以避免使用独占锁,避免死锁。... ...
分类:
编程语言 时间:
2017-10-27 16:37:05
阅读次数:
310
上来是个小姐姐,有点懵。。 1. 介绍 2. 项目 3. 实习 4. 用的协议 tcp和udp的协议 5. select 和epoll(忘了) 6. 数据库的隔离级别, 死锁, 怎么避免死锁 7. 宏定义和const 8. 哪些函数不能做虚函数? 9. STL有哪些容器 10. 多线程通信的方式 1 ...
分类:
编程语言 时间:
2017-10-10 13:05:44
阅读次数:
141
解决死锁的基本方法:预防死锁:资源一次性分配:(破坏请求和保持条件)可剥夺资源:即当某进程新的资源未满足时,释放已占有的资源(破坏不可剥夺条件)资源有序分配法:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反(破坏环路等待条件)避免死锁:预防死锁的几种策略,会严重地损害系统 ...
分类:
其他好文 时间:
2017-09-26 23:45:43
阅读次数:
361
死锁:当一个线程永远地持有一个锁,并且其他线程都尝试获得这个锁时,那么它们将永远被阻塞。比如,线程1已经持有了A锁并想要获得B锁的同时,线程2持有B锁并尝试获取A锁,那么这两个线程将永远地等待下去。 我们来看一个死锁的简单例子: 运行结果: 从运行结果可看到,线程1拿到了A锁,并尝试去获取B锁,与此 ...
分类:
编程语言 时间:
2017-09-15 18:39:37
阅读次数:
148
1. 下述解决死锁的方法中,属于死锁预防策略的是? A. 银行家算法 避免死锁 允许进程动态地申请资源,但在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。 B. 资源有序分配法 预防死锁 预防死锁是设法至少破坏产生死锁的必要条件之一,严格预防死锁 ...
分类:
其他好文 时间:
2017-08-30 19:51:41
阅读次数:
419
1、在查询中不要使用“select *” 检索不必要的列会带来额外的系统开销,有句话叫做“该省的则省”; 2、在select清单中避免不必要的列,在连接条件中避免不必要的表; 3、不要在子查询中使用count()求和执行存在性检查 4、避免使用两个不同类型的列进行表的连接 5、避免死锁 6、避免使用 ...
分类:
数据库 时间:
2017-08-13 23:16:15
阅读次数:
194
多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点) Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self con ...
分类:
编程语言 时间:
2017-07-15 14:53:58
阅读次数:
225
ReentrantLock (重入锁) 特点 1可重入(可以多次加锁,多次解锁) 2可限时(可以避免死锁,如果在给给定时间内没有获取到锁,那么就去做其他事情 并且释放自己的资源) 3公平锁(能够按照先后顺序去获取锁 但是会因影响性能) Semaphore(信号量) CountDownLatch (计 ...
分类:
其他好文 时间:
2017-06-27 20:05:13
阅读次数:
129
避免死锁:1 程序设计时候尽量避免(银行家算法) 2 添加超时时间 这里面有一个思想就是 看门狗 思想,也就是当一个程序顺利运行,每隔一段时间向看门狗发送一个数据,可以是加1,告诉看门狗还在运行,当一段时间看门狗没有收到信息,看门狗报警或者重新启动 ...
分类:
其他好文 时间:
2017-06-23 14:16:40
阅读次数:
172