- 浏览: 285588 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
梦醒无尘:
异步处理框架已经用到项目上,感谢你利用休息时间创造出一款舒服的 ...
asyn4j 1.2 发布 -
xiaokang1582830:
有一点没有考虑到的就是是否可以提供目前已经在调用的calss和 ...
asyn4j -- 异步方法调用框架 -
snowolf:
记得曾经实现过iBatis+EhCache,实现了一个iBat ...
让ibatis 支持 memcached -
bsspirit:
很好,很好!!
java annotation 实例 -
ij仔:
...
Statement,PreparedStatement区别
List 迭代 private final List<Entry> entries = new CopyOnWriteArrayList<Entry>(); for (ListIterator<Entry> i = entries.listIterator(); i.hasNext();) { Entry base = i.next(); if (base.getName().equals(baseName)) { register(i.previousIndex(), new EntryImpl(name, filter)); break; } }
确认一个参数是否为空 if (name == null) { throw new IllegalArgumentException("name"); }
非静态内部类调为外部类 public void addAfter(String name, IoFilter filter) { DefaultIoFilterChainBuilder.this.addAfter(getName(), name, filter); }
异常处理类 public class DefaultExceptionMonitor extends ExceptionMonitor { private final static Logger LOGGER = LoggerFactory.getLogger(DefaultExceptionMonitor.class); /** * {@inheritDoc} */ @Override public void exceptionCaught(Throwable cause) { if (cause instanceof Error) { throw (Error) cause; } LOGGER.warn("Unexpected exception.", cause); } }
异常单例句柄 public abstract class ExceptionMonitor { private static ExceptionMonitor instance = new DefaultExceptionMonitor(); /** * Returns the current exception monitor. */ public static ExceptionMonitor getInstance() { return instance; } /** * Sets the uncaught exception monitor. If <code>null</code> is specified, * the default monitor will be set. * * @param monitor A new instance of {@link DefaultExceptionMonitor} is set * if <tt>null</tt> is specified. */ public static void setInstance(ExceptionMonitor monitor) { if (monitor == null) { monitor = new DefaultExceptionMonitor(); } instance = monitor; } /** * Invoked when there are any uncaught exceptions. * * @param cause The caught exception */ public abstract void exceptionCaught(Throwable cause); }
name thread /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.mina.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * A {@link Runnable} wrapper that preserves the name of the thread after the runnable is * complete (for {@link Runnable}s that change the name of the Thread they use.) * * @author <a href="http://mina.apache.org">Apache MINA Project</a> */ public class NamePreservingRunnable implements Runnable { private final static Logger LOGGER = LoggerFactory.getLogger(NamePreservingRunnable.class); /** The runnable name */ private final String newName; /** The runnable task */ private final Runnable runnable; /** * Creates a new instance of NamePreservingRunnable. * * @param runnable The underlying runnable * @param newName The runnable's name */ public NamePreservingRunnable(Runnable runnable, String newName) { this.runnable = runnable; this.newName = newName; } /** * Run the runnable after having renamed the current thread's name * to the new name. When the runnable has completed, set back the * current thread name back to its origin. */ public void run() { Thread currentThread = Thread.currentThread(); String oldName = currentThread.getName(); if (newName != null) { setName(currentThread, newName); } try { runnable.run(); } finally { setName(currentThread, oldName); } } /** * Wraps {@link Thread#setName(String)} to catch a possible {@link Exception}s such as * {@link SecurityException} in sandbox environments, such as applets */ private void setName(Thread thread, String name) { try { thread.setName(name); } catch (SecurityException se) { if (LOGGER.isWarnEnabled()) { LOGGER.warn("Failed to set the thread name.", se); } } } }
检查死锁
private void checkDeadLock() { // Only read / write / connect / write future can cause dead lock. if (!(this instanceof CloseFuture || this instanceof WriteFuture || this instanceof ReadFuture || this instanceof ConnectFuture)) { return; } // Get the current thread stackTrace. // Using Thread.currentThread().getStackTrace() is the best solution, // even if slightly less efficient than doing a new Exception().getStackTrace(), // as internally, it does exactly the same thing. The advantage of using // this solution is that we may benefit some improvement with some // future versions of Java. StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); // Simple and quick check. for (StackTraceElement s: stackTrace) { if (AbstractPollingIoProcessor.class.getName().equals(s.getClassName())) { IllegalStateException e = new IllegalStateException( "t" ); e.getStackTrace(); throw new IllegalStateException( "DEAD LOCK: " + IoFuture.class.getSimpleName() + ".await() was invoked from an I/O processor thread. " + "Please use " + IoFutureListener.class.getSimpleName() + " or configure a proper thread model alternatively."); } } // And then more precisely. for (StackTraceElement s: stackTrace) { try { Class<?> cls = DefaultIoFuture.class.getClassLoader().loadClass(s.getClassName()); if (IoProcessor.class.isAssignableFrom(cls)) { throw new IllegalStateException( "DEAD LOCK: " + IoFuture.class.getSimpleName() + ".await() was invoked from an I/O processor thread. " + "Please use " + IoFutureListener.class.getSimpleName() + " or configure a proper thread model alternatively."); } } catch (Exception cnfe) { // Ignore } } }
发表评论
-
sql 解析 工具(sql parse)
2010-11-25 12:51 5945项目地址: http://jsqlparser.source ... -
asyn4j 1.2 发布
2010-10-08 19:16 18971.2更新 1.设置关闭服务延时 2.设置异步工作 ... -
asyn4j -- 异步方法调用框架
2010-08-24 19:41 3878asyn4j 是一个java异步方法调用框架,基于消费者与生产 ... -
java分布式学习笔记
2010-07-19 22:05 39001.分布式JAVA应用 基于TC ... -
写正则表达式--工具分享
2010-04-07 11:06 1222这是一个写和测正则表达式很好的工具,不知大家有没有用过! 里面 ... -
mina 实现与memcached 连接工具
2010-02-24 22:00 2106前段时间学习了mina框架.就确定写一个小实例玩一下. 看到不 ... -
JMF 通过 Applet 获取数据
2009-12-22 15:15 1669import java.awt.BorderLayou ... -
yanf4j 服务端读取操作 源码分析
2009-12-19 15:13 1433最近学习 NIO,学习了XMemcached 和 它的NIO框 ... -
Statement,PreparedStatement区别
2009-12-17 16:04 2258以Oracle为例吧 Statement ... -
java 排序 整合
2009-12-17 14:59 1237package net.rubyeye.xmemcached. ... -
JVM 结束挂钩程序
2009-12-16 15:08 1199public class HookTest { /** ... -
java优化编程--读书笔记
2009-12-09 14:58 18561.JVM管理两种类型的内存:堆内存(heap),栈内存(st ... -
Java的内存泄漏
2009-11-30 11:54 992Java的一个重要优点就是通过垃圾收集器(Garbage Co ... -
TCP/IP 无阻塞 Socket
2009-11-25 17:25 1958package com.io; import java. ... -
java socket 多线程处理
2009-11-25 16:16 2299public class MallShopSoketServe ... -
写ZIP文件
2009-11-24 09:42 995public class ZipTest { /** ... -
XML DOM API
2009-11-23 11:49 1510javax.xml.parse.DocumentBuilder ... -
自定义类加载器
2009-11-23 09:34 1132public class CryptoClassLoader ... -
ibatis 缓存 key 过长,大家有什么看法
2009-11-21 10:50 1067实体类 public class Account impl ... -
ibatis 缓存模块 key实现类
2009-11-20 16:15 1216//更新CacheKey hashcode ,每个参数 ...
相关推荐
《代码备忘录:经典工具的深度解析与应用》 在快速发展的信息技术领域,程序员们经常需要处理大量的代码,为了提高工作效率和代码管理能力,一款优秀的代码备忘录软件是必不可少的。本文将深入探讨“代码备忘录”这...
《代码备忘录与代码管理器:框架2.0的应用深度解析》 在软件开发过程中,代码管理是一项至关重要的任务,它关乎项目的可维护性、团队协作效率以及代码质量。"代码备忘录"和"代码管理器"是为此目标而设计的工具,...
微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源...
小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+...
【标题】"备忘录代码"的描述指出这是一个简洁易懂的备忘录应用程序的代码实现,它可能是一个基础但实用的工具,适用于Android平台,考虑到标签为"android"。在Android开发中,备忘录应用通常是用于创建、查看和管理...
微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小...
本文将深入探讨如何基于Android平台开发一个备忘录应用,通过分析“Android 备忘录源码.rar”中的代码,我们可以学习到以下几个关键知识点: 1. **用户界面设计**:从项目中包含的图片资源(如1_120916130147_1.png...
微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习...
这份"Android程序研发源码Android 备忘录源码.zip"包含了一个完整的备忘录应用的源代码,可以帮助开发者深入理解Android应用的构建过程。下面我们将详细探讨其中涉及的关键技术和实践。 1. **AndroidManifest.xml**...
备忘录模式是一种在软件工程中广泛使用的面向对象设计模式,它主要用来安全地保存对象的状态,以便在需要时能够恢复到先前...通过使用备忘录模式,开发者可以灵活地处理对象状态的变更,同时保持代码的简洁和可维护性。
这个名为"Android代码-备忘录源码.zip"的压缩包文件很可能包含了一个完整的备忘录应用的源代码,这为我们深入学习Android开发提供了一个很好的实例。以下是基于这个描述可能涵盖的一些关键知识点: 1. **Android ...
微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本...
在我们的示例代码中,可能有一个名为`Originator`的类,它具有多个属性来表示其状态,并提供方法来创建和应用备忘录。 ```python class Originator: def __init__(self, state): self._state = state def set_...
备忘录模式是一种设计模式,它在不破坏封装性的前提下,保存对象的内部状态,以便在需要的时候恢复。在C#中,备忘录模式常用于实现撤销/重做功能,或者在需要记录和恢复对象状态的情况下。下面将详细解释备忘录模式...
本资源提供的是一款备忘录应用的源代码,以ZIP格式压缩打包,供开发者学习和参考。 【描述】中提到的"源码安卓备忘录开发",意味着这是一个完整的应用程序项目,包含了从界面设计到功能实现的所有代码。开发者可以...
【标题】"备忘录JAVA代码"涉及到的核心知识点主要集中在Java编程语言以及备忘录功能的实现上。Java是一种广泛使用的面向对象的编程语言,它以其"一次编写,到处运行"的特性闻名,具备强大的跨平台能力。在这个项目中...
本资源包提供了一套完整的Android备忘录应用的源代码,这为开发者提供了学习和参考的宝贵材料。以下将详细介绍备忘录应用开发中的关键知识点: 1. **界面设计**:Android应用的用户界面设计是至关重要的。备忘录...
C#备忘录数据库代码通常涉及到如何在C#中与数据库进行交互,以实现创建、读取、更新和删除(CRUD)备忘录的功能。这里我们将深入探讨相关知识点,帮助你理解并开发自己的C#备忘录应用。 1. 数据库选择: - C#中常...
根据给定的文件信息,我们可以总结出以下关于“C语言备忘录程序代码”的关键知识点: ### C语言备忘录程序概述 此备忘录系统是用C语言编写的,旨在帮助用户记录并管理日常生活或工作中重要的事件。系统通过结构体`...
在提供的“备忘录模式.rar”压缩包中,可能包含了实现备忘录模式的Java代码示例,包括发起人、备忘录和存档者的具体实现,以及如何在实际项目中使用这些组件的例子。学习这些代码可以帮助你更好地理解备忘录模式的...