iOS中实现多线程技术有很多方法。这里说说使用NSCondition实现多线程同步的问题,也就是解决生产者消费者问题(如收发同步等等)。问题流程如下: 消费者取得锁,取产品,如果没有,则wait,这时会释放锁,直到有线程唤醒它去消费产品; 生产者制造产品,首先也要取得锁,然后生产,再发signal,这样可唤醒wait的消费者。这里需要注意wait和signal的问题: 1: 其实...
分类:
编程语言 时间:
2014-11-12 13:47:01
阅读次数:
209
前言多线程的价值无需赘述,对于App性能和用户体验都有着至关重要的意义,在iOS开发中,Apple提供了不同的技术支持多线程编程,除了跨平台的pthread之外,还提供了NSThread、NSOperationQueue、GCD等多线程技术,从本篇Blog开始介绍这几种多线程技术的细节。对于pthr...
分类:
编程语言 时间:
2014-11-04 16:30:24
阅读次数:
301
最近由于工作的原因开始决定系统学习一下Java的多线程机制。Java语言的一大特点就是内在支持多线程,这和很多语言需要通过外部开发包来实现多线程有本质区别。每个程序都有一个主线程,当程序启动时自动执行。关于多线程的一些概念性东西,见这篇博文:多线程初步。...
分类:
编程语言 时间:
2014-11-01 09:48:11
阅读次数:
257
前言多线程的价值无需赘述,对于App性能和用户体验都有着至关重要的意义,在iOS开发中,Apple提供了不同的技术支持多线程编程,除了跨平台的pthread之外,还提供了NSThread、NSOperationQueue、GCD等多线程技术,从本篇Blog开始介绍这几种多线程技术的细节。对于pthr...
分类:
移动开发 时间:
2014-10-30 14:50:21
阅读次数:
339
一. 传统线程创建方法
1. 覆盖Thread子类的run方法中编写具体代码
2. 在传递给Thread的Runnable对象的run方法中编写具体代码...
分类:
编程语言 时间:
2014-10-19 00:02:55
阅读次数:
247
我们在做软件开发的时候很多要用到多线程技术。例如如果做一个下载软件象flashget就要用到、象在线视频工具realplayer也要用到因为要同时下载media stream还要播放。其实例子是很多的。线程相对进程来说是“轻量级”的,操作系统用较少的资源创建和管理线程。程序中的线程在相同的内存空间中...
分类:
编程语言 时间:
2014-10-16 14:13:32
阅读次数:
318
一、线程理论基础 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,....
分类:
编程语言 时间:
2014-10-06 20:27:20
阅读次数:
367
方法 1、 在运行dbcc checkdb前对数据库进行快照(事务是一致的),dbcc 对快照进行检测,dbcc完成后删除快照。 做快照的目的是为了不要让dbcc 申请太多的锁,从这里可以看出dbcc 可以在多用户模式下进。方法 2、 dbcc还可通知多线程技术,为运行加速。这样...
分类:
数据库 时间:
2014-10-01 22:38:51
阅读次数:
257
概念为了在单一进程中充分发挥多核的优势,我们有必要使用多线程技术(我们没必要去提多进程,这玩意儿和GCD没关系)。在低层,GCD全局dispatch queue仅仅是工作线程池的抽象。这些队列中的Block一旦可用,就会被dispatch到工作线程中。提交至用户队列的Block最终也会通过全局队列进...
分类:
其他好文 时间:
2014-09-29 13:04:30
阅读次数:
259
异步套接字:如果使用阻塞的套接字的话,在控制台下还好!如果是WIN32程序的话,那么就容易造成界面的假死,因为接收函数一直等待有消息进来之后才会被返回!所以此时界面一直属于假死的状态,如果你乱动的话,那么就容易真死了。解决办法如下:第一:使用多线程技术,多线程和SOCKET结合的话,可以使用单独一个...