线程

swift中的线程安全单例

我有和应用程序有一个单一的存储整个应用程序的信息.但是,当使用来自不同线程的单例时,这会产生一些数据争用问题.这里有一个非常虚拟和简单化的问题版本:独生子单例的使用有没有办法确保单例是线程安全的,所以它可以在应用程序的任何地方使用,而不必担心你在哪个线程?

swift – 订阅和观察的顺序是否重要?

我有点困惑,你可以称之为订阅和观察方法的可观察的顺序.我读了几个帖子,一个人说没关系,只是在他的例子中使用的东西,而其他人说这很重要.所以这里是我的问题:例如:是这样的:如果我正确地理解他们不同的机制.第一个在主线程上做所有的工作,第二个在另一个线程上执行所有的工作,然后发回到主线程.但是我肯定肯定有人可以为我清除这个吗?

Swift命令行程序中的CFRunLoop

我正在使用第三方框架在Swift中编写命令行应用程序依赖于GCD回调来在套接字接收数据时完成某些操作.为了更好地理解框架,我一直在使用框架作者编写的示例Cocoa应用程序来与框架一起使用.因为示例应用程序是Cocoa应用程序,所以自动处理运行循环.我将从示例应用程序中包含代码片段,以了解其工作原理:……

可可 – 停止/暂停swift应用程序一段时间

我的应用程序使用NSTimer对象的多个线程.在一个函数内,我希望它暂停整个应用程序,暂停线程1秒钟.我有以下代码:这是客观的C,我尝试将其翻译成Swift,如下所示:但是我在调用中得到参数’waitUntilDone’的错误Missing参数,当我把它放入时,它说它想要参数模式但是当我把它放在它中时说额外的参数模式.我无法弄清楚如何暂停应用程序及其所有线程几秒钟,然后像往常一样继续?performSelector方法在Swift中不可用.您可以使用dispatch_after获取延迟功能.

macos – 在Swift中使用Grand Central Dispatch来并行化并加速“for”循环?

我试图围绕如何使用GCD来并行化和加速蒙特卡罗模拟.大部分/全部简单示例都是针对ObjectiveC提供的,我真的需要一个Swift的简单示例,因为Swift是我的第一个“真正的”编程语言.Swift中蒙特卡罗模拟的最小工作版本将是这样的:代码可以直接粘贴到xcode6.1中的命令行程序项目中最内层的循环不能并行化,因为变量“points”的新值在下一个循环中使用.但最外面的只是运行最里面的模拟1

Swift3 GCD的基本用法一 - 任务和队列、服务优先级、信号量

基本概念说到GCD,通常与相似功能的OperationQueue进行比较理解。GCD是使用C语言构成的API,而OperationQueue是具体的Objc对象;GCD是使用block的形式管理队列中的任务,而OperationQueue是直接把队列和任务作为具体的对象进行操作。swift3中Qos共有6个级别,优先级从高到低依次为userInteractive、userInitiated、default、utility、background、unspecified。semaphore.wait():会判

swift 实例演示 Operation 的用法

前言本文代码虽是手动code了一遍并小小做了改动,但是终究是在他人demo的基础上编排出的,即便是个比较简单的例子,但是这个..那个..为了尊重别人劳动成果,还是分类到了转载,这里特别感谢一下@非典型技术宅老兄的原文,想必大家都听腻了太多的多线程的概念理论,本文不大书理论,用实例讲述OperationQueues的用法,就是这么任性!总结operation的属性、方法:

Swift「信号」机制概述

在了解了GCD内容后,接下来我们来看看Swift中的信号机制。ResourceRequest:wait()当信号机制接受到请求后,它会先去检查自己的资源计数是否大于0:如果大于0,则资源计数减1,并将资源分配给请求者使用。Warning:BusyWaiting当线程向信号机制请求资源分配但是没有得到满足时,该线程将会被冻结直到成功获取了资源的使用权。信号机制在Swift中的使用说了那么多,下面我们通过代码来更好的理解该机制。非信号机制下的情形

Swift - 多线程实现方式1 - Thread

线程同步对数据的加锁会有一定的系统开销。3,Thread的两种创建方式直接创建线程并且自动运行线程先创建一个线程对象,然后手动运行线程,在运行线程操作之前可以设置线程的优先级等线程信息。1234567891011121314151617181920212223242526272829importUIKitclassViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()//方式1:使用类方法Thread.de