b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

java多线程死锁并发编程学习(1)----并发编程基础前(2)

电脑杂谈  发布时间:2018-02-08 01:19:42  来源:网络整理

4、并发编程挑战

1)上下文切换。

java多线程死锁_多线程面试题_java内存管理

当线程较多时,频繁的上线文切换会导致执行效率降低,合理地调整线程数可以将并发执行效率最大化。

2)死锁。

锁是非常有用的工具,运用场景非常多。但是如果使用不当可能会带来死锁问题,严重时可能使系统瘫痪。死锁即创建两个线程A和B,A拥有锁a,同时需要获取锁b,而B拥有锁b,同时需要获取锁a。两者均持有锁,无法获取所需锁。在实际开发中,要避免死锁的产生。

避免死锁的常见方法

a.避免一个线程同时获取多个锁

b.便面一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。

c.尝试使用定时锁,使用lock.tryLock(timeout)

d.对程序进行异常处理,保证程序发生异常时锁可以正常释放。

d.对于锁,加锁和解锁必须在同一个连接里,否则会出现解锁失败问题。

3)资源限制。

资源限制指在并发编程中,受限于计算机硬件资源或软件资源。例如,一个服务器的贷款只有2M/s,当使用多线程时,并不会提高下载速度。因为受限于资源,线程仍然是串行执行。程序反而会更慢,由于上下文切换和资源调度时间。

对于硬件资源,可以通过增加带宽或者增加集群方式解决。对于软件资源,例如连接,可以通过控制线程并发数来使得资源利用率最大化。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66302-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 鲁考公姬酋
      鲁考公姬酋

      有钱了说句屁话都被人捧为经典

    • 郑申杰
      郑申杰

      美国佬就不会说什么航行自由了

    每日福利
    热点图片
    拼命载入中...