1. 为什么会有Lock的出现 JDK5之前,我们一般都是通过synchronized来进行加锁操作,但synchronized是一种悲观锁,如果这个获取到锁的线程被阻塞了,但却没有释放锁,其他线程将只能一直无限期的等待着。而Lock可以实现其他线程只等待一定的时间或者能够响应中断。 又比如,当有多 ...
分类:
编程语言 时间:
2017-11-12 17:27:33
阅读次数:
165
每一个app的启动,开启主线程的同时,也开启了一个Runloop死循环,runloop会不断询问是否有新的任务给线程执行。runloop最常用的三块,就是网络事件,事件响应与NSTimer。网络事件现在基本上都用已经封装好的框架,但是最初用NSURLConnection进行网络请求的时候,会出现异步 ...
分类:
移动开发 时间:
2017-11-12 14:14:42
阅读次数:
265
查看当前被阻塞的对象和锁信息SELECT DISTINCT s1.inst_id BlockingInst, s1.sid BlockingSid, s1.serial# BlockingSerial, s2.inst_id BlockedInst, s2.sid BlockedSid, s2.us ...
分类:
其他好文 时间:
2017-11-10 15:19:27
阅读次数:
208
c++11 语言级线程 线程的创建 用std::thread创建线程非常简单,只需要提供线程函数或函数对象即可,并且可以同时指定线程函数的参数。 回收线程资源 std::thread::join等待线程结束(此函数会阻塞),并回收线程资源,如果线程函数有返回值,返回值将被忽略。 如果不希望线程被阻塞 ...
分类:
编程语言 时间:
2017-11-05 22:26:44
阅读次数:
289
概述 BlockingQueue支持两个附加操作的Queue:1)当Queue为空时,获取元素线程被阻塞直到Queue变为非空;2)当Queue满时,添加元素线程被阻塞直到Queue不满。BlockingQueue不允许元素为null,如果入队一个null元素,会抛NullPointerExcept ...
分类:
编程语言 时间:
2017-11-05 11:30:10
阅读次数:
307
在介绍swing线程机制之前,先介绍一些背景概念。 背景概念 同步与异步: 同步是指程序在发起请求后开始处理事件并等待处理的结果或等待请求执行完毕,在此之前程序被阻塞(block)直到请求完成。 异步是当前程序发起请求后立即返回,当前程序不会立即处理该事件并等待处理的结果,请求是在稍后的某一时间才被 ...
分类:
编程语言 时间:
2017-11-01 21:32:57
阅读次数:
203
操作步骤:1、session1执行:starttransaction;select*fromt1;2、session2在第1步执行完后执行:droptablet1;此时session2的drop语句被阻塞。那么怎么分析查看元数据锁呢?方法:1)执行showprocesslist;,可以看到drop语句在等待元数据锁mysql>showprocesslist;
+----+----..
分类:
数据库 时间:
2017-10-18 23:05:26
阅读次数:
191
1. [self performSelector:@selector(fangfa) withObject:nil afterDelay:0.5]; // performSelector 2. [NSTimer scheduledTimerWithTimeInterval:1.5 target:se ...
分类:
移动开发 时间:
2017-10-18 20:00:39
阅读次数:
246
iOS开发中,涉及到定时的问题,我们通常使用NSTimer来解决,例如下面的代码。 SFClass.h SFClass.m 由于定时器会保留target对象,所以上面的代码会造成SFClass对象和NSTimer对象的相互引用,会导致内存泄漏问题。 我们可以通过下面的方式来解决。 NSTimer+S ...
分类:
其他好文 时间:
2017-10-16 23:28:40
阅读次数:
258
在项目中碰到多个ajax加载,loading加载出现问题,没有能第一时间加载出来。 主要原因是因为:浏览器的渲染(UI)线程和js线程是互斥的,在执行js耗时操作时,页面渲染会被阻塞掉。当我们执行异步ajax的时候没有问题,但当设置为同步请求时,其他的动作(ajax函数后面的代码,还有渲染线程)都会 ...
分类:
Web程序 时间:
2017-10-15 19:30:57
阅读次数:
276