当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

<b>实战Java多线程编程之不倡导的办法</b>[Java编程]

赞助商链接



  本文“<b>实战Java多线程编程之不倡导的办法</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

不倡导利用的办法是为支持向后兼容性而保存的那些办法,它们在今后的版本中大概呈现,也大概不呈现.Java 多线程支持在版本 1.1 和版本 1.2 中做了庞大订正,stop()、suspend() 和 resume() 函数已不倡导利用.这些函数在 JVM 中大概引入奇妙的错误.固然函数名大概听起来很诱人,但请抵抗引诱不要利用它们.

调试线程化的程序

在线程化的程序中,大概发生的某些常见而讨厌的情形是死锁、活锁、内存破坏和资源耗尽.

死锁

死锁大概是多线程程序最常见的问题.当一个线程需求一个资源而另一个线程持有该资源的锁时,就会发死活锁.这种情形普通很难检测.但是,办理筹划却相当好:在全部的线程中按相同的次序获得全部资源锁.比方,假若有四个资源 —A、B、C 和 D — 并且一个线程大概要获得四个资源中任何一个资源的锁,则请确保在获得对 B 的锁之前首先获得对 A 的锁,依此类推.假如“线程 1”但愿获得对 B 和 C 的锁,而“线程 2”获得了 A、C 和 D 的锁,则这一技术大概招致阻塞,但它永久不会在这四个锁上造成死锁.

活锁

当一个线程忙于承受新任务乃至它永久没有机会完成任何任务时,就会发生活锁.这个线程终究将超越缓冲区并招致程序崩溃.试想一个秘书需求录入一封信,但她一向在忙于接电话,所以这封信永久不会被录入.

内存破坏

假如明智地利用 synchronized 关键字,则完好可以避免内存错误这种气死人的问题.

资源耗尽

某些系统资源是有限的,如文件描写符.多线程程序大概耗尽资源,因为每个线程都大概但愿有一个这样的资源.假如线程数相当大,大概某个资源的侯选线程数远远超越了可用的资源数,则最好利用 资源池.一个最好的示例是数据库衔接池.只要线程需求利用一个数据库衔接,它就从池中取出一个,利用今后再将它返回池中.资源池也称为 资源库.

调试大量的线程

有时一个程序因为有大量的线程在运行而极难调试.在这种情形下,下面的这个类大概会派上用场:

public class Probe extends Thread {
public Probe() {}
public void run() {
 while(true) {
  Thread[] x = new Thread[100];
  Thread.enumerate(x);
  for(int i=0; i<100; i++) {
   Thread t = x[i];
   if(t == null)
    break;
   else
    System.out.println(t.getName() + "  " + t.getPriority()
+ "  " + t.isAlive() + "  " + t.isDaemon());
  }
 }
}
}


  以上是“<b>实战Java多线程编程之不倡导的办法</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .