ReentrantLock tryLock(timeout,timeUnit) 超时未返回

以下代码中,tryLock(timeout,timeUnit) 方法在超过2s后并未输出 “T2 got no lock end” 而是在T1线程结束后才有输出,但是如果以debug 模式运行或者替换代码中的Math.random()为其他耗时操作比如"TimeUnit.SECONDS.sleep(1)"时却可以在2s后输出 "T2 got no lock end",请问为什么会这样?

public class MyService2 {
public ReentrantLock lock = new ReentrantLock();

public void waitMethod() {
    try {
        System.out.println(System.currentTimeMillis() + " " + Thread.currentThread().getName() + " enter ");
        boolean b = lock.tryLock(2, TimeUnit.SECONDS);
        if (b) {
            System.out.println(System.currentTimeMillis() + " lock begin:" + Thread.currentThread().getName());
            for (int i = 0; i < Integer.MAX_VALUE / 10; i++) {
                Math.random();
            }
            System.out.println(System.currentTimeMillis() + " lock end " + Thread.currentThread().getName());
            return;
        }
        System.out.println(System.currentTimeMillis() + " " + Thread.currentThread().getName() + " got no lock end ");
    } catch (InterruptedException e) {
        e.printStackTrace();
    } finally {
        if (lock.isHeldByCurrentThread()) {
            lock.unlock();
        }
    }
}

public static void main(String[] args) throws InterruptedException {
    MyService2 myService2 = new MyService2();
    Runnable runnable = myService2::waitMethod;
    Thread thread1 = new Thread(runnable);
    thread1.setName("T1");
    thread1.start();
    TimeUnit.MILLISECONDS.sleep(10);
    Thread thread2 = new Thread(runnable);
    thread2.setName("T2");
    thread2.start();
}

1个回答

这个太像虚拟机优化的现象了

for (int i = 0; i < Integer.MAX_VALUE / 10; i++) {
                Math.random();
            }

这段代码应该是没有运行的,如果你换成

for (int i = 0; i < 100000; i++) {
                System.out.println(Math.random());
            }

结果应该会像你想的那样,这样会对外界产生影响

xuxiaoyinliu
仰望星空_Star 很强,多谢了
5 个月之前 回复
weixin_39606236
꧁gaoKuo꧂ 回复仰望星空_Star: 我说的就是明确答案吧,只是不知道原理,这个应该要去看虚拟机源码或者汇编代码吧,我是这么做的:打印gc日志,打印内存使用信息,如果代码有效执行,把/10改为/1000不可能内存不变的啊
5 个月之前 回复
xuxiaoyinliu
仰望星空_Star 那,没有明确的答案吗
5 个月之前 回复
weixin_39606236
꧁gaoKuo꧂ 回复仰望星空_Star: 我也想知道=.=
5 个月之前 回复
xuxiaoyinliu
仰望星空_Star 我想了解一些关于这种现象的详细信息请问要从哪儿才能看到呢?万分感谢
5 个月之前 回复
weixin_39606236
꧁gaoKuo꧂ 在这里广一点是指你写了代码未必就会执行
5 个月之前 回复
xuxiaoyinliu
仰望星空_Star “虚拟机优化的现象"指的是什么呢?这个我不太懂
5 个月之前 回复
weixin_39606236
꧁gaoKuo꧂ 回复仰望星空_Star: 那当然,debug模式是与你有交互的,所以程序需要等待你的命令才能执行,就会超时
5 个月之前 回复
xuxiaoyinliu
仰望星空_Star 而且如果直接以Debug模式运行,也是没有问题的
5 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ReentrantLock中tryLock的使用
请各位帮忙看看,以下是代码rn[code=java]rn static ReentrantLock lock = new ReentrantLock();rn rn public static void main(String[] args) rn ExecutorService es = Executors.newCachedThreadPool();rn rn es.execute(new Runnable() rn rn @Overridern public void run() rn foo("thread1");rn rn );rn rn es.execute(new Runnable() rn rn @Overridern public void run() rn foo("thread2");rn rn );rn rn rn private static void foo(String threadName) rn try rn lock.tryLock();rn System.out.println(lock.getHoldCount());rn System.out.println(threadName);rn try rn Thread.sleep(2000);rn catch (InterruptedException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rn finally rn lock.unlock();rn System.out.println(lock.getHoldCount());rn rn rn[/code]rn输出信息是:rn1rnthread1rn(此处无等待)rn0rnthread2rn0rnException in thread "pool-1-thread-2" java.lang.IllegalMonitorStateExceptionrn at java.util.concurrent.locks.ReentrantLock$Sync.tryRelease(ReentrantLock.java:155)rn at java.util.concurrent.locks.AbstractQueuedSynchronizer.release(AbstractQueuedSynchronizer.java:1260)rn at java.util.concurrent.locks.ReentrantLock.unlock(ReentrantLock.java:460)rn at test.reentrantlock.Test.foo(Test.java:43)rn at test.reentrantlock.Test.access$0(Test.java:31)rn at test.reentrantlock.Test$2.run(Test.java:26)rn at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)rn at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)rn at java.lang.Thread.run(Thread.java:722)rnrn为什么线程2会立刻获得锁,而且获得锁之后的HoldCount是0,最后抛出的异常是因为线程1准备释放锁时,它已经不是锁持有者了。
timeout超时??
rn请问一下,为什么我修改timeout=1000后,还是过了几分钟就又出现超时问题?还有其它的解决方法吗?
reentrylock之tryLock加超时时间
ssss
Ext.Ajax.request timeout 超时
Ext.Ajax.request(rn timeout : 1,url : servlet,rn rn params : rn RequestJson : Ext.encode(rn Action : rn Code : 10022rn ,rn "Path" : Pathrn )rn ,rn success : function(res, opts) rn rn var respText = Ext.util.JSON.decode(res.responseText);rn if (respText.Result == true) rnrn Ext.Msg.alert('信息', respText.Action.Msg);rn btn.setDisabled(false);rn pb.updateText('等待...');rn else rn Ext.Msg.alert('警告', respText.Action.Msg);rn rnrn , failure : function(response, options) rn Ext.alert.msg('','status:'+response.status+'请求超时,导出失败!', 'error');rn rn )rn这个操作执行了很久rn但是就没说超时rn这是为何?rn我把Ext.Ajax.timeout = 1; 用上也不起作用rn请问rn这是为什么?
设置超时,timeout,socket
除了C#某些自带的timeout设置以外,有时也需要对某个请求设置超时时间(比如soket)。 例子如下:        方法介绍:需判断某个值是否已经存在(soket访问其他服务),等待放回结果,但若时间过长,则无需等待了。 // 判断CRS订单是否重复 public bool IsDuplicate(string crsresvID) {
Timeout expired超时问题
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.rn客户端在使用一段时间之后,在用数据集更新的时候就出现这样的错误。重器SQL服务之后问题解决。rn我把SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 的值改成0之后,在更新的时候程序半天也没响应。
Nginx的超时timeout配置详解
本文介绍 Nginx 的 超时(timeout)配置。分享给大家,具体如下:Nginx 处理的每个请求均有相应的超时设置。如果做好这些超时时间的限定,判定超时后资源被释放,用来处理其他的请求,以此提升 Nginx 的性能。keepalive_timeoutHTTP 是一种无状态协议,客户端向服务器发送一个 TCP 请求,服务端响应完毕后断开连接。如果客户端向服务器发送多个请求,每个请求都要建立各自...
循环超时 -- timeout
使用合作式调度器时,任务运行时间&lt;时标时间,使用循环超时和硬件超时的模式能保证,如果任务不在规定的时间内完成,就中止该任务。 1.循环超时 例1,某单片机带有AD模块,手册应用有以下代码: while((ADCON&amp;ADCI)==0) 这样的代码不可靠,可导致系统被挂起 初始化不正确,不能确定数模转换被执行 输入电压过高,根本不运行 没有正确的配置ADCON和ADCI,不按...
Timeout超时问题?
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. rn 我上百度找了,它说是连接没关的缘故,但我看了代码,已经关闭了啊?
Timeout处理超时
本课程主要讲解了RxJava的多线程&辅助操作&转换操作&组合操作等。
git 代理超时timeout
提示“Git Pull Failed: unable to access... Failed to connect to 47.96.166.70 port 1080: Timed out” 解决办法: 执行git命令:git config --global --unset http.proxy
超时问题:timeout expired!
我设置了ado的Command Timeout 为0;rnConnectionTimeout也为0;rn在sqlserver企业管理器中设置了连接超时为0;rn执行下面的语句还是会超时,不知道为什么?rn请专家指教!rnQryTmp.SQL.Clear;rnQryTmp.SQL.Add('SELECT SUM(view_xsmx.金额-view_xsmx.折扣) AS SM');rnQryTmp.SQL.Add('FROM view_xszb LEFT OUTER JOIN XT_shinfo rnON view_xszb.商 户编码 = XT_shinfo.商户编码 LEFT OUTER JOIN');rnQryTmp.SQL.Add('view_xsmx ON view_xszb.销售小票号 = view_xsmx.销售小票ID');rn rnQryTmp.SQL.Add('from view_xszb,xt_shinfo,view_xsmx ');rnQryTmp.SQL.Add('where view_xszb.商户编码 = XT_shinfo.商户编码 and view_xszb.销售小票号 = view_xsmx.销售小票ID');rnQryTmp.SQL.Add('and (view_xszb.消费日期>='+''''+datetimetostr(BeginDate)+''''+')');rnQryTmp.SQL.Add(' and (view_xszb.消费日期<='+''''+datetimetostr(EndDate)+''''+')');rnshowmessage(QryTmp.SQL.Text);rnQryTmp.Open;//在此open时报timeout expired
URLConnection 网络超时不返回,未设置自动超时
最近在使用URLConnection conn = realUrl.openConnection(); 时 没有设置  conn.setConnectTimeout(30000);  conn.setReadTimeout(30000); 网络出现闪动,发现,建立链接失败,这个还好,加重试可以。 返回超时没有,设置。实际上服务端已经接收到消息,但是网络原因,客户端没有收到。客
Redisson(2-2)分布式锁实现对比 VS Java的ReentrantLock之带超时时间的tryLock
Redisson实现了一整套JDK中ReentrantLock的功能,这里对比一下实现的差异和核心的思想。 unfair模式的带超时时间的tryLock(超时时间) ReentrantLock 这里上来会直接先试下能不能try成功,如果不成功,进入等待并开始竞争等逻辑。 整个锁的核心是通过LockSupport的park方法来实现的,这是调用底层UNSAFE的park方法来实现...
TimeUnit问题
问,我新手,有问题求教:rnrn我在看API时发现,TimeUnit是枚举?可是,就是这个枚举,怎么有方法(函数) ???rnrn我诧异了!
并发编程-TimeUnit
import java.util.concurrent.TimeUnit;  public class TimeUinitTest {      private TimeUnit timeUnit = TimeUnit.DAYS;        public static void main(String[] TimeUinitTest) {     TimeUinitTest
pip超时问题(timeout)的解决方法
参考的两个链接: http://www.cnblogs.com/wuyong09/p/5698167.html www.cnblogs.com/llhf/p/python-proxy-for-pip.html 我们需要安装的python包一般通过pip工具下载,而pip的源地址是官方网址:pypi.python.org,网络协议:HTTPS。 但是我们在国内的某些站点下载速度特
tomcat启动超时(timeout)解决方法
web工程部署时需要加载很多类和文件,需要的时间比较长。如果时间超过了45秒,tomcat就会自动退出并且报错。双击tomcat server容器,修改配置文件中的启动时间。进入tomcat配置文件界面后,点击右侧的Timeouts选项,展开里面的配置内容就可以修改启动时间。直接输入具体的启动最大耗时时间或者按上箭头修改具体的值,调节启动时间。修改文之后,一定记得保存修改。按ctrl+s就可以保存...
close和shutdown、套接字超时、timeout
close函数: 终止数据传送的两个方向。。。。 1,客户端A调用close函数,也就是说:socket(A)不能向socket(B)发送数据,也不能接收从B发送来的据。。。       当客户端A调用了close函数时(一般情况下:会发送一个FIN分节),对端read返回为0,但是这并不意味着对端       socket(B)不能向A发送数据,,,这也是允许的,,,(因为B收到FIN只
线程刷新超时问题,timeout
做了个程序,建立了线程,每个线程里面有刷新数据的功能,也就是每10秒刷新一次,如果3分钟这个线程没有刷新数据就重启这个线程,请问这个超时改怎么弄?rn[code=csharp]rn public void Set_labelText(XmlNode strText) rn rn this.Invoke((Action)delegate(XmlNode node)rn rn StationData stationData = new StationData(node);rn //stationData.IsShow = false;rn Program.listStationList.Add(stationData);rn this.flowLayoutPanel1.BackColor = Color.Orange;rn Label lab = new Label();//实例一个label显示rnrn lab.Name = "lab" + stationData.CardFlagID.ToString();rn lab.AutoSize = false;rn lab.Size = new Size(280, 140);rn lab.BorderStyle = BorderStyle.Fixed3D;rn lab.Text = stationData.StatinName;rn lab.Font = new Font("宋体", 11);rnrn if (stationData.IsShow)rn rn lab.BackColor = Color.Green;rn rn if (stationData.IsShow)rn rn System.Threading.Timer tim = new System.Threading.Timer(ti, stationData.CardFlagID, 0, 10000);rn //超过0秒后,以及此后每隔10秒间隔,都会调用一次由TimerCallback(ShowDataToScreenStation)指定的委托。rn //每隔10秒,刷新一次检测站数据rn dicThread.Add(stationData.CardFlagID.ToString(), tim);rn rn rn this.flowLayoutPanel1.Controls.Add(lab);rn , strText);rn rnrn[/code]
dubbo配置timeout超时时间
dubbo配置timeout超时时间 在dubbo的provider和consumer的配置文件中,如果都配置了timeout的超时时间,dubbo默认以consumer中配置的时间为准。 provider.xml的配置: &amp;lt;dubbo:service timeout=&quot;4000&quot; retries=&quot;0&quot; interface=&quot;com.dingding.tms.bms.service....
Python第三方库安装超时timeout
Python第三方库安装失败(超时timeout问题)
TimeUnit的简单使用
常用的时间 1.TimeUnit.DAYS // 天 2.TimeUnit.HOURS // 小时 3.TimeUnit.MINUTES // 分钟 4.TimeUnit.SECONDS // 秒 5.TimeUnit.IlliSECONDS // 毫秒 时间转换 1.public long toMillis(long...
有意思的TimeUnit
java.util.concurrent.TimeUnit 这个类,相信童鞋们都不陌生。它是一个enum: public enum TimeUnit 好吧,我一直把它当做一个枚举类来用。偶然看到还有别的用法,大吃一斤,原来 TimeUnit 并不是一个简单的枚举类。 时间单位换算 //小时转换为秒 long sec = TimeUnit.HOURS.toSeconds(1); // 另一种形式 ...
tryLock示例
在当前的Java面试和后台开发中,多线程与线程池技术越来越重要。毫不夸张的说,如何你想进入任何一家好的网络公司并能够长足发展,多线程与线程池技术是必须要掌握的技能!
Reentrantlock 返回锁对象异常
使用Reentrantlock实现可中断线程锁的时候返回:锁对象异常。代码如下rn// 客户端及两个Runnablern[code=java]rnpackage com.scl.thread.interrupt;rnrnpublic class TestLockInterruptiblyrnrn public static void main(String[] args) throws Exceptionrn rn // 1. 根据lock控制中断rn FileHandlerByThreads fileControl = new FileHandlerByThreads();rn Thread readthr = new Thread(new ReadThread(fileControl), "reader");rn Thread writethr = new Thread(new WriteThread(fileControl), "writer");rnrn // 2. 使用synchronized关键字控制中断线程rn // SyncFileHandler sync = new SyncFileHandler();rn // Thread readthr = new Thread(new ReadThread(sync), "reader");rn // Thread writethr = new Thread(new WriteThread(sync), "writer");rn writethr.start();rn readthr.start();rnrn long startTime = System.currentTimeMillis();rn // 循环判是否有线程获取到了读锁断rn while (!fileControl.isGetReadLock())rn rn long endTime = System.currentTimeMillis();rn // 如果4秒后读线程仍然没有等到读锁,离开等待rn if (endTime - startTime > 4000)rn rn readthr.interrupt();rn System.out.println("4 seconds have passed,try to interrupt reader Thread");rn break;rn rn rnrn rnrnrnclass ReadThread implements Runnablernrn private IFileHandler fileControl;rnrn public ReadThread(IFileHandler fileControl)rn rn this.fileControl = fileControl;rn rnrn @Overridern public void run()rn rn tryrn rn fileControl.read();rn rn catch (InterruptedException e)rn rn // e.printStackTrace();rn // 测试单纯使用synchronized关键字控制线程中断rn System.out.println("reader thread end");rn fileControl.formatFile();rn rn rnrnrnclass WriteThread implements Runnablernrn private IFileHandler fileControl;rnrn public WriteThread(IFileHandler fileControl)rn rn this.fileControl = fileControl;rn rnrn @Overridern public void run()rn rn fileControl.write();rn rnrnrn[/code]rnrn//线程逻辑代码rn[code=java]rnpackage com.scl.thread.interrupt;rnrnimport java.util.concurrent.locks.ReentrantLock;rnrnpublic class FileHandlerByThreads implements IFileHandlerrnrnrn private volatile boolean isGetReadLock = false;rn private ReentrantLock lock = new ReentrantLock();rnrn public boolean isGetReadLock()rn rn return isGetReadLock;rn rnrn public void read()rn rnrn tryrn rn // 等待20毫秒再进行后续操作,防止主线程操作过快rn Thread.sleep(50);rn // 使用reentrantlockrn lock.lockInterruptibly();rn System.out.println(Thread.currentThread().getName() + " start");rn isGetReadLock = true;rn rn catch (InterruptedException e)rn rn // e.printStackTrace();rn System.out.println("reader Thread leave the file and going to format the file");rn rn finallyrn rn lock.unlock();rn rnrn rnrn // 模拟运行时间比较久的写操作rn public void write()rn rn tryrn rnrn // 1.使用lock实现写锁定rn // 等待20毫秒再进行后续操作,防止主线程操作过快rn Thread.sleep(20);rn lock.lock();rn System.out.println(Thread.currentThread().getName() + " start");rn long startTime = System.currentTimeMillis();rn // 模拟一个耗时较长的操作rn for (;;)rn rn if (System.currentTimeMillis() - startTime > Integer.MAX_VALUE)rn rn break;rn rn rnrn System.out.println("Writer has writered down everything! bravo");rn rn catch (Exception e)rn rn e.printStackTrace();rn rn finallyrn rn lock.unlock();rn rn rnrn public void formatFile()rn rn System.out.println("begin to format the file");rn // format the filern rnrn[/code]rn在对比其他人的代码时发现引起锁对象异常是由 FileHandlerByThreads对象内read方法里面的lock.lockInterruptibly();位置引起,把该代码提到try代码块前面则代码不返回java.lang.IllegalMonitorStateException异常。请问这是怎么回事?rn
日期工具类TimeUnit
简介TimeUnit是Java.util.concurrent包下面的一个类。它提供了两大功能:1)提供了可读性更好的线程暂停操作,通常用来替换Thread.sleep(); 2)提供了便捷方法用于把时间转换成不同单位,如把秒转换成毫秒;代码示例package com.shen.test.other;import java.sql.Date; import java.text.DateFormat
枚举 TimeUnit 使用和说明
long millis = TimeUnit.NANOSECONDS.toMillis(long duration); java.util.concurrent 枚举 TimeUnit java.lang.Object java.lang.EnumTimeUnit> java.util.concurrent.TimeUnit 所有已实现的接口: Serializab
haproxy 服务端超时时间 timeout server 17000 --后台程序17秒没有响应,返回超时
haproxy 服务端超时时间: haproxy 配置: timeout server 17000 --后台程序17秒没有响应,返回超时 Jun 27 09:29:56 localhost haproxy[13593]: 192.168.32.101:43552 [27/Jun/2016:09:29:39.002] www appserver_3000/webhost01_8001
poll 系统调用timeout 不返回
TIME_OUT_THIRTY_MILLI  30 status = poll((struct pollfd*)&poll_events, ONE, TIME_OUT_THIRTY_MILLI); [ 53.080533] NdVideoDec_0 [0] S [d5221f80] c04b6b7c 0 1918 0x00000000 1 (user thread) [ 53
TryLock使用方式
尝试获取锁,如果获取到了执行同步的地方,如果获取不到那么返回的是false将做其他的事情。 public class TestTryLcok implements Runnable{ private static Lock locks = new ReentrantLock(); @Override public void run() { try {
Pyhon : 爬虫Requests高级用法--超时(timeout)
超时(timeout) 为防止服务器不能及时响应,大部分发至外部服务器的请求都应该带着 timeout 参数。在默认情况下,除非显式指定了 timeout 值,requests 是不会自动进行超时处理的。如果没有 timeout,你的代码可能会挂起若干分钟甚至更长时间。 连接超时指的是在你的客户端实现到远端机器端口的连接时(对应的是connect()_),Request 会等待的秒数。一个很好的实...
MySQL几个超时参数(timeout)解释
1. connect_timeout mysql客户端在尝试与mysql服务器建立连接时,mysql服务器返回错误握手协议前等待客户端数据包的最大时限。默认10秒。 2. interactive_timeout / wait_timeout mysql关闭交互/非交互连接前等待的最大时限。默认28800秒。 3. lock_wait_timeout  sql语句请求元数据
妙用Spring的事务超时时间timeout
1、如何设置Spring事务超时时间 在方法上加注解 @Transactional(rollbackFor= Exception.class,timeout=10) 注:timeout单位:秒 增加配置参数 (全局有效)spring.transaction.default-timeout = 600s 2、timeout超时时间包括哪部分? @Tran...
更新数据或插入数据时超时(timeout error)
不知为啥,最近我用了将近两年的数据库中的一个数据表出现了超时错误,超时错误只是出现当使用update或insert语句的时候,如果使用select语句就完全没问题的。rnrn这个数据表有将近30万条记录,用户是通过网页asp.net或vb程序向数据表里面添加和更新数据的。
Eclipse Tomcat调试timeout超时怎么办
eclipse中 tomcat 启动超时怎么办? 修改文件 找到Eclipse的工作空间\.metadata\.plugins\org.eclipse.wst.server.core目录,修改目录内文件server.xml 把属性start-timeout=&quot;45&quot; 设高一点就行了,如果start-timeout=&quot;450&quot; 完整的xml [code=&quot;ja...
kafka 连接Zookeeper 拒绝,超时timeOut!
按照官方的案例,操作如下 这个大家都会。 问题来了,老是连接失败,连接不上去。 网上的答案都是狗屎! 问题就在于 你启动zookeeper的时候 会出现这个窗口 说明启动成功了,这个是千万不能关闭,不要Ctrl+C 一旦退出就连接不上了。 另起一个窗口,启动kafka进程 ok!连接成功 ...
请教下HttpWebRequest的.Timeout超时不好用的问题
有的网络是好用的.rn有的网络超时明明设置的3秒rn但是实际要1分钟左右才能抛出超时异常.rn不知道为何,望指教.
delphi调用webservice的超时处理(HTTPWebNode timeout)
在用delphi7实现远程调用webservice时,碰到超时处理的问题,我的设置如下:rn[code=Delphi(Pascal)]rn var RIO: THTTPRIO;rn rio.HTTPWebNode.SendTimeout :=3000;rn rio.HTTPWebNode.ConnectTimeout := 3000;rn rio.HTTPWebNode.ReceiveTimeout := 6000;rn[/code]rn可是以上设置并没有起到作用,在第一次远程连接时,还是会出现失败(3秒,测试的webservice构建在我本地,webservice方法中使用thread.sleep(XX)模拟返回延迟);当我把timeout都设置的很小时,竟然也会有成功调用的情况.rn希望大家给些想法或建议.rn谢谢!
c3p0 Timeout 超时问题 100分
最近遇到一个问题,用的存储过程,spring负责调用存储过程,但在处理时,c3p0报出一个错误,大概如下:rn—————错误信息开始———————rnCaused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@5e7663 -- timeout at awaitAvailable()rn............rn..........rnrn[img=https://img-bbs.csdn.net/upload/201406/26/1403765416_618870.jpg][/img]rn—————————错误信息结束—————————————rnrn________spring中的c3p0配置如下_________rnrn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn____________________rn[color=#FF0000]是不是存储过程处理的数据量太大引起的?而且问题不是毕现,偶尔出现,一直没有找到原因,一出现这个异常,服务器就宕了,访问不了了。在网上也找了一些方案,没用,所以在此建议,感激不尽!!![/color]
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview