首页

搜索结果

"tag:"thread""


标题及摘要 日期/时间
1
云上Java System Profiling与Debugging——蚂蚁金服观察与实践-CSDN.NET
常见问题解决思路 下面介绍一下处理一些常见的问题时,使用ZProflier和ZDebugger系统与使用传统工具在流程和思路上的一些区别。一个新上线的系统如果处理能力达不到我们的预期,或者一个老的系统处理速度突然下降了,抑或频繁抛出异常,这些都促使我们去思考系统存在性能问题该优化了,那我们通常会碰到的性能问题有OOM、CPU占用率高、Load高、频繁GC等。OOM的现象为Java进程直接退出,出错日志里可以看到OutOfMemoryError的异常。如果发现频繁的做MajorGC甚至是FullGC,一般也...
2015-5-27
3:37:00
2
java多线程实现任务超时监听 - huangying2124的专栏 - 博客频道 - CSDN.NET
使用Future的特性(推荐) 利用Future.get(longtimeout,TimeUnitunit)方法。 1、新建TaskThread类,实现Callable接口,实现call()方法。 2、线程池调用submit()方法,得到Future对象。 3、调用Future对象的get(long timeout,TimeUnitunit)方法,该方法的特点:阻塞式线程调用,同时指定了超时时间timeout,get方法执行超时会抛出timeout异常,该异常需要捕获。 示例代码: [java]vi...
2015-4-7
21:55:00
3
如何中断正在执行IO的 Quartz 作业
如果你想中断正在执行IO的 Quartz 作业,在你使用 InterruptibleChannel时这是可行的。引用一下Oracle链接:实现了这个接口的通道,是可中断的:如果一个线程在一个中断通道阻塞I/O操作,另一个线程能调用阻塞的线程的中断方法。这将导致的通道被关闭,被阻塞的线程收到一个ClosedByInterruptException,设置被阻塞的线程的中断状态。因此,获得自己工作的执行线程的作业计划,能保存供以后使用。当Quartz调度中断作业,你可以再调用该线程的interrupt()方法...
2012-4-23
10:54:40
4
诊断 Java 代码: 诊断 Java 代码:孤线程(Orphaned Thread)错误模式
用多线程编写代码对程序员大有好处。多线程能使编程(和程序)进行得快得多,而且代码能有效得多地使用资源。然而,跟生活中的很多事情一样,多线程也存在缺点。因为多线程代码天生是非确定性的,出现错误的可能性大得多。而且,确实发生的的错误很难重现,因此也更难解决。 孤线程模式 Java 编程语言为多线程代码提供了丰富的支持,包括一项特别有用的功能:能够在一个线程中抛出一个异常而不影响其它线程。但这项功能会导致很多难以跟踪的错误。 从某个线程的崩溃中恢复过来是有意义,在此种情况下,这种能力能增加程序的健壮性级别。然而...
2011-8-17
15:33:43
5
慎用Java Thread.interrupt 中断JAVA线程
程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难题,如果没有被恰当的解决,将导致意外的行为以及细微的、难以发现的错误。 在本篇文章中,我们针对这些难题之一:如何中断一个正在运行的线程。 背景 中断(Interrupt)一个线程意味着在该线程完成任务之前停止其正在进行的一切,有效地中止其当前的操作。线程是死亡、还是等待新的任务或是继续运行至下...
2010-11-18
15:38:46
6
java 线程超时中断实现
有一个需求,就是当一个方法执行超时的时候就中断该方法. java的超时实现,在网上搜到的大部分是: 方法1.   中断线程最好的,最受推荐的方式是,使用共享变量(sharedvariable)发出信号,告诉线程必须停止正在运行的任务。线程必须周期性的核查这一变量(尤其在冗余操作期间),然后有秩序地中止任务。ListingB描述了这一方式。 ListingB classExample2extendsThread{ volatilebooleanstop=false; publicstaticvoidm...
2010-8-11
8:22:05
7
理解Java的synchronized关键字
理解Java的synchronized关键字 1、synchronized关键字的作用域有二种: 1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访问了其中的一个synchronized方法,其它线程不能同时访问这个对象中任何一个synchronized方法)。这时,不同的对象实例的synchronized方法是不相干扰的。也就是说,其它线程照样可以同时访问相...
2009-12-4
15:24:47
8
关于ConcurrentModificationException异常
关于ConcurrentModificationException异常 在Java API里已经解释了这个ConcurrentModificationException异常的来历: 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。 例如,某个线程在 Collection 上进行迭代时,通常不允许另一个线程修改该 Collection。通常在这些情况下,迭代的结果是不明确的。如果检测到这种行为,一些迭代器实现(包括 JRE 提供的所有通用 collection 实现)可能选择抛出此异常。执行...
2008-10-11
18:04:32
9
J2EE中的死锁问题
数据库死锁,跨资源死锁
2007-6-2
13:10:53
10
Thread Dump 和Java应用诊断
用下列方法可以产生Thread Dump信息: 1,Solaris OS ctrl-’\’ (Control-Backslash) kill -QUIT pid 2, HP-UN/UNIX/Linux Kill -3 PID PID通过下面方法获取 ps -efHl | grep 'java' **. ** 3,Windows 直接对MSDOS窗口的程序按Ctrl-break
2007-4-10
20:25:38
11
Java 多线程的Thread类和Runnable接口
  Thread 类 Thread 类是一个具体的类,即不是抽象类,该类封装了线程的行为。要创建一个线程,程序员必须创建一个从 Thread 类导出的新类。程序员必须覆盖 Thread 的 run() 函数来完成有用的工作。用户并不直接调用此函数;而是必须调用 Thread 的 start() 函数,该函数再调用 run()。下面的代码说明了它的用法: 创建两个新线程 import java.util.*; class TimePrinter extends Thread { int pauseT...
2006-10-13
22:59:49
12
Java 理论与实践: 并发在一定程度上使一切变得简单
对于每个项目,象许多其它应用程序基础结构服务一样,通常无需从头重新编写并发实用程序类(如工作队列和线程池)。这个月,Brian Goetz 将介绍 Doug Lea 的 util.concurrent 包,这是一个高质量的、广泛使用的、并发实用程序的开放源码包。
2005-12-14
9:33:23
13
Java 理论与实践: 线程池与工作队列
原英文地址 原中文地址
2005-12-13
23:23:05