使用NSOperation和NSOperationQueue实现多线程编程,实现步骤大致是这样的:1> 先将需要执行的操作封装到一个NSOperation对象中2> 然后将NSOperation对象添加到NSOperationQueue中3> 系统会自动将NSOperation中封装的操作放到一条新...
分类:
编程语言 时间:
2014-07-12 00:56:53
阅读次数:
210
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上...
分类:
编程语言 时间:
2014-07-09 19:38:00
阅读次数:
218
Interlocked.Increment 方法:让++成为原子操作;Interlocked.Decrement 方法让--成为原子操作。什么叫原子操作呢。就是不会被别人打断,因为C#中的一个语句,编译成机器代码后会变成多个语句。在多线程环境中,线程切换有可能会发生在这多个语句中间。使用Interl...
分类:
其他好文 时间:
2014-07-09 19:25:39
阅读次数:
206
以前古老的DOS操作系统是单任务的,还没有线程的概念,系统在每次只能做一件事情。比如你在copy东西的时候不能rename文件名。为了提高系统的利用效率,采用批处理来批量执行任务。 现在的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如你在听歌的同时还在用MSN和好友聊天。听歌和聊天就是两个任务,这个两个任务是“同时”进行的。一个任务一般对应一个进程,也可能包含好几个进...
分类:
编程语言 时间:
2014-07-09 11:53:16
阅读次数:
237
https://sourceforge.net/projects/boahttpd/
一个C接口的开发库,适用于 windows/linux/或其他嵌入式平台,支持CGI扩展,支持多线程。采用面向对象开发,一个应用里可以同时开多个http server,只要端口不同就互不影响。
目前只写了英文帮助,大家凑合看吧。
boahttpd Library Development...
分类:
其他好文 时间:
2014-07-09 11:08:59
阅读次数:
230
//函数原型:版本linux-3.0.8
struct task_struct *__switch_to(structtask_struct *,
struct thread_info *, struct thread_info *);
#define switch_to(prev,next,last) ...
分类:
其他好文 时间:
2014-07-09 09:28:09
阅读次数:
362
访问网络的方式:
1、同步请求: 会阻塞主线程
2、异步请求: 无法取消 请求过程在多线程执行
基本流程:
1、构造NSURL实例。
2、生成NSURLRequest请求。
3、通过NSURLConnection发送请求。
4、通过NSURLRespond实例和NSError实例分析结果。
5、接受返回数据。
使用NSURLConnection发起异步请求:
第一...
分类:
其他好文 时间:
2014-07-09 09:23:33
阅读次数:
126
一句简单的g_nLoginCount++操作,转换成汇编语言就成了上面的三句话,假如现在我们有两个线程,当第一个线程执行到第二个汇编时,此时第二个线程启动,他又从内存中读取g_nLoginCount,但这时第一个线程已经将g_nLoginCount做了加法操作,只是没有将其移回内存,这样的话...
分类:
编程语言 时间:
2014-07-09 00:58:04
阅读次数:
189
Hashtable简介
Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。
Hashtable也是JDK1.0引入的类,是线程安全的,能用于多线程环境中。
Hashtable同样实现了Serializable接口,它支持序列化,实现了Cloneable接口,能被克隆。...
分类:
编程语言 时间:
2014-07-08 21:17:22
阅读次数:
227