生产者消费者模式是比较经典的多线程问题,看似 不难,但实际上有很多地方值得注意的。
首先是几个问题
问题1 一共有哪些对象?
生产者与消费者是肯定有的,生产者与消费者之间还有一个缓冲区对象,用以保存生产与消费的目标,还有一个对象就是主线程对象,用来运行多个线程的。
追问:为什么要有一个缓冲区对象?
答:为了实现生产者与消费者解耦,互补依赖或者关联。...
分类:
其他好文 时间:
2015-08-12 21:46:31
阅读次数:
148
说明:android螺纹。android无非就是一个线程Main Thread和Worker Thread。(除了主线程Main Thread是Worker Thread)Main Thread 也叫UI Thread。绝大部分的UI 代码都执行在主线程的。Worker Thread 通常完毕耗时较...
分类:
移动开发 时间:
2015-08-12 21:15:21
阅读次数:
143
//touchesEnded全屏点击的一个方法
-(void)touchesEnded:(NSSet?*)touches?withEvent:(UIEvent?*)event
{
//????//这个相当于睡眠的作用?会卡死主线程?主线程内所有东西都会睡三秒?所以我们不适用
//?...
分类:
编程语言 时间:
2015-08-12 13:32:38
阅读次数:
232
当android应用程序运行时,一个主线程被创建(也称作UI线程),此线程主要负责处理UI相关的事件,由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作,如果在非UI线程直接对UI进行了操作,则会报错,...
分类:
移动开发 时间:
2015-08-12 06:47:20
阅读次数:
179
1:cd到主线程 cd / (另一个版本是 su root); 查看进程: ps -A? ? ? ? ? ? ? ? ? ?ps -ef|grep tomcat? ? ? ? ? ? 2:ps [选项] 下面对命令选项进行说明∶ -e显示所有进程. -f全格式....
分类:
编程语言 时间:
2015-08-11 21:38:02
阅读次数:
120
Handler的作用和定义:
主要接受子线程发送的数据, 并用此数据配合主线程更新UI。
解释:当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件, 进行事件分发, 比如说, 你要是点击一个 Button ,Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据, 或者读取本地...
分类:
移动开发 时间:
2015-08-11 16:11:09
阅读次数:
138
我们知道在Android开发中,UI主线程不能执行耗时太久的操作,Activity一般是不超过5s,BroadCaseReceiver一般不超过10s,因为这些耗时操作不仅仅阻塞UI线程操作,还可能导致用户不想见到的ANR,所以我们需要使用异步操作。
我们通常用的异步操作有两种方式:
1:多线程或线程池异步加载,
2,AsyncTask异步任务操作(底层也是用的线程池)。...
分类:
移动开发 时间:
2015-08-11 12:13:11
阅读次数:
152
android.os.NetworkOnMainThreadException网上搜索后知道是因为版本问题,在4.0之后在主线程里面执行Http请求都会报这个错,也许是怕Http请求时间太长造成程序假死的情况吧。那么网上的朋友也给出了相应的解决方案,这叫上有政策下有对策:一:在发起Http请求的Ac...
分类:
移动开发 时间:
2015-08-11 09:54:07
阅读次数:
112
package cn.multidownload;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import ja...
分类:
移动开发 时间:
2015-08-11 09:54:04
阅读次数:
117
1.进程:在系统中正在运行的一个应用程序 线程:一个进程要想执行任务必须有线程(每一个进程至少有一条进程)2.主线程:显示、刷新UI界面,处理UI事件,与用户交互的都是主线程 二. 多线程的几种方式(面试常问) 1.Pthread:一套通用的多线程API,使用于UNix\Linux\Window等....
分类:
编程语言 时间:
2015-08-11 07:13:57
阅读次数:
157