用在多线程,同步变量。 线程为了提高效率,将某成员变量(如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
访问网络的方式:
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
多线程编程
Linux线程概述
线程模型
线程是程序中完成一个独立任务的完整执行序列,即一个可调度的实体。根据运行环境和调度者的身份,线程可分为内核线程和用户线程。内核线程,在有的系统上也称为LWP(Light Weigth Process,轻量级进程),运行在内核空间,由内核来调度;用户线程运行在用户空间,由线程库来调度。当进程的一个内核线程获得CPU的使用权时,它就加载并...
分类:
编程语言 时间:
2014-07-08 19:45:08
阅读次数:
219
直接上代码:#include //必要的头文件,使用Windows API函数
#include
int index = 0;
int tickets = 100;//票数
HANDLE hMutex; //使用全局的互斥对象来保证对同一资源的互斥访问与操作这里是tickets
//线程处理函数原型,形式可从MSDN中拷贝
//线程1 的入口函数
DWORD WINAPI Fun1Proc...
分类:
编程语言 时间:
2014-07-08 17:12:03
阅读次数:
239
多线程编程
条件变量
如果说互斥锁是用于同步线程对共享数据的访问的话,那么条件变量则是用于线程之间同步共享数据的值。条件变量提供了一种线程间的通信机制:当某个共享数据达到某个值得时候,唤醒等待这个共享数据的线程。
条件本身是由互斥量保护的。线程在改变条件状态前必须首先锁住互斥量,其他现成在获得互斥量之前不会察觉到这种变化,因为必须锁住互斥量以后才能计算条件。...
分类:
编程语言 时间:
2014-07-08 15:06:42
阅读次数:
249
在前面的章节中,介绍了网络传输、任务线程池、数据库和集群四个主要功能模块。到现在为止,这些模块都还只是一种资源,没有产生实际的运行效果。对一个具备真实功能的应用来说,需要有一个整合的过程。整合方法很多,本例里以典型的客户 -客户通信来举例说明。在最上层,有一个本服务器进程的管理者,称作st_client_table,用于封装所有的服务功能。这个类在每个服务器进程中仅有一个实例。它主要的工作有: (1) 提供一个盛放、管理各个客户端节点类(st_clientNodeAppLayer实例)、各个集群服务器...
分类:
其他好文 时间:
2014-07-08 13:31:26
阅读次数:
262
缘起于玩唱吧,因为唱吧好友少,访问量低,又不想加什么亲友团之类的,主要是太麻烦了,于是我就琢磨唱吧的访问机制,准备用java的httpclient库来进行刷访问量,想到动态IP重复使用就想到了用多线程来进行刷,但发现速度并没有增快,仍然是刷完一个网址刷下一个网址,这里刷的顺序是随机的。 主要让人伤脑筋的是那代理IP,去网上找了1000多个IP,有好多都是响应速度太慢了,以至于我设定了超时机制,超过...
分类:
编程语言 时间:
2014-07-08 12:46:04
阅读次数:
279