Swift初体验之图案锁】的更多相关文章

这篇在应用上貌似没有价值,貌似我写了好多实际上都没有价值,这里贴出来就是分享下. 自己写swift好多天了,感觉好多东西还是不太懂,边学边做,互勉! 先上图: 代码:下载…
// 写功能初体验 func getMyName(firstName first:String, lastName last:String) -> String{ //return first + "-" + last return first + last } var myName = getMyName(firstName: "hu", lastName: "mingtao") println("myName = \(myNa…
swift是一门类型安全的语言,同样也是基于c语言 那么c语言的一些类型也是实用的,不同的是:swift声明变量和常量是不一样的 let:用来修饰常量:var用来修饰变量 e.g: let num=111 var num2=222 num=12  就会报错 num2=123 就可以正常通过 在没有固定类型的时候,let和var 声明的类型是万能的,系统会根据后面的参数类型来确定参数类型 我们可以使用如下方法来声明一个确定类型的变量和常量 let  num : Int =111 let  num2…
竞态,就是多个协程同时访问临界区,由并发而产生的数据不同步的状态. 这个说的有点low,没办法,我就是这么表达的,官方的请度娘. 先上代码: 输出: 为何不是1000?就是因为竞态,发生竞态后,最终的输出是以最后一个协程执行的结果为准,但最后一个协程有一定的随机性,不是先跑先完. 改一下代码: 输出: 因为加了锁,这1000个协程是按照队列的顺序执行12行,所以稳定输出 final value of x 1000 再看: 输出: 照样稳定输出 final value of x 1000,因为信道…
==== Mutex为互斥锁,顾名思义,被Mutex锁住的代码同时只允许一个协程访问,其它协程进来就要排队 如何使用?看代码: 输出: 释义: 并发1000个协程同时更改m的元素,这样会有一部分更改成功,但是还有一部分会出现竟态,造成并发错误,输出结果很明了 如何避免: 放开26行,30行便可 作用是锁住临界区28行,这样就能保证28行同时只有一个协程访问,其他协程进来得排队,等待上一个协程释放资源,即解锁. ==== RWMutex为读写锁 允许多个读者访问共享资源,但是只能有一个写者.不能同…
AppDelegate.swift : <span style="font-size:24px;"><strong>// // AppDelegate.swift // SwiftHelloWord // // Created by jason on 14-6-5. // Copyright (c) 2014年 JasonApp. All rights reserved. // import UIKit @UIApplicationMain class AppD…
/*******************************************************************************/ // 协议 protocol Description{ func description() -> String mutating func aMutatingMethod() class func aTypeMethod() // func anOptionalMethod() } // 假设要声明可选择实现的方法,须要在func前…
// 声明一个常量 let maxNumberOfStudents: Int = 47 // 声明一个变量,假设没有在声明的时候初始化,须要显示的标注其类型 var currentNumberOfStudents = 23 // 使用前必须初始化 currentNumberOfStudents += 1 // 浮点数据自己主动推断为Double类型,假设须要指定了Float类型,须要显示的指定Float类型 let score: Float = 90.5; let englishScore =…
sync包里的WaitGroup主要用于协程同步 计数主协程创建的子线程 WaitGoup.Add(i) 调用清除标记方法WaitGroup.Done() 使用WaitGroup.Wait()来阻塞,直到所有子线程(标记=0)执行完毕 看代码: 代码都有注释,不难理解. 看到这里有C#语言基础的童鞋是不是觉得有点像 Task.WaitAll(),没错,思想都是一样的.…
Swift初体验 1. 导入框架 2. 定义标识符: let/var 3. 语句结束时;可以省略 4. print() 5. let/var 6. 逻辑分支 7. 循环使用 // 1.Swift中如何导入框架 /* OC导入框架: #import <UIKit/UIKit.h> */ import UIKit // 2.定义标识符 /* OC定义标识符: int a = 20; a = 10; Swift定义标识符 1> 定义标识符时,必须明确的指定该标识符是一个变量还是一个常量 2&g…