Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。
invalidate()是用来刷新View的,必须是在UI线程中进行工作。比如在修改某个view的显示时,调用invalidate()才能看到重新绘制的界面。invalidate(...
分类:
移动开发 时间:
2015-02-05 13:39:31
阅读次数:
171
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中调用。...
分类:
移动开发 时间:
2015-02-04 21:56:27
阅读次数:
214
----nodejs----1、对于操作系统来说,创建一线程的代价是十分昂贵的,要给他分配内存、列入调度,同时在线程切换的时候还要执行内存换页,CPU缓存被清空,切换的时候还要重新从内存中读取信息,破坏了数据的局部性。2、事件驱动的单线程异步模型 & 多线程同步模型3、Web开发架构对比模板为中心架...
分类:
Web程序 时间:
2015-02-03 17:04:28
阅读次数:
194
现在有这样一个任务,有一份手机号列表(20W),有一份话单的列表(10W),要统计哪些手机号没有出现在话单中,哪些手机号在话单中出现了不止一次。
想到的最直接的方式,就是两层循环去遍历,虽然此方法比较笨,但目前还没有想出更好的办法。
一开始使用单线程来处理,代码是随手写的并没有进行重构,只是做一个简单的说明:
package tool;
import java.util.List;
pu...
分类:
编程语言 时间:
2015-02-03 01:55:28
阅读次数:
250
们需要一个“单点worker”系统,此系统来确保系统中定时任务在分布式环境中,任意时刻只有一个实例处于活跃;比如,生产环境中,有6台机器支撑一个应用,但是一个应用中有30个定时任务,这些任务有些必须被在“单线程”环境中运行(例如“数据统计”任务),避免并发的原因不是在java层面,可能是在操作db数...
分类:
其他好文 时间:
2015-02-02 22:53:33
阅读次数:
310
单线程环境下可以使用HashMap和TreeMap。如果不是遍历时需要按照Key的排序来返回结果,应该采用HashMap。
多线程环境下可以使用以下四种Map容器。
1)Collections.synchronizedMap(new HashMap());
2)ConcurrentHashMap
3)Collections.synchronizedSortedMap(new TreeMap())
4)ConcurrentSkipListMap
如果不需要遍历时需要按照Key的排序来返回结果,首选Concur...
分类:
编程语言 时间:
2015-01-30 17:41:51
阅读次数:
536
redis是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。redis具有持久化机制,可以定期将内存中的数据持久化到硬盘上。Redis是单线程运行的,所以IO是串行化的,网络IO和内存IO,因此当单条数据太大时,由于需要等待一...
分类:
其他好文 时间:
2015-01-30 17:36:22
阅读次数:
198
初学者很多对自己开发的软件使用硬件资源的时候并不注意,造成写出的东西不是很满意。一般有两种情况:1.写的都是同步单线程任务,不管你电脑有多少个核都不关我事 我就用你1个核所以不管怎么样都不会把CPU吃满。这样的例子还是比较多的,在CPU出多核之后很多软件陆续已经将这些问题进行了修复,不过也还有这样的...
分类:
其他好文 时间:
2015-01-29 19:25:44
阅读次数:
198
在上一篇博文中,我们分析了Mangos服务器的登陆服务器,Mangos登陆服务器主要就是验证用户的合法性,并且针对通过验证的用户发送游戏列表服务器列表,用户选择了相关游戏服务器时所涉及到的流程就是今天本博文需要分析的,Mangos游戏服务器的主要架构就是一对多的关系,下层的I/O是多线程的,而上层的游戏主逻辑是单线程的,两者的胶合部分就是已经封装好的session模块,好了,下面就来看看具体的流程...
分类:
其他好文 时间:
2015-01-28 22:38:28
阅读次数:
656
Java中的多线程(一)
一、理解线程
1.进程、线程、多线程
1.进程:在多任务系统中,每个独立执行的程序(或说正在进行的程序)称为进程。
2.线程:一个进程中又可以包含一个或多个线程,一个线程就是一个程序内部的一条执行线索(一部分代码)。
3.多线程:如果要一程序中实现多段代码同时交替运行,就需产生多个线程,并指定每个线程上所要运行的程序代码,即为多线程。
注:在单线程中,程序...
分类:
编程语言 时间:
2015-01-26 00:08:56
阅读次数:
331