初探swift语言的学习笔记五(线程)

作者:fengsh998
原文地址:http://blog.csdn.net/fengsh998/article/details/30354127
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢!


swift 并没有使用新一套线程,使用OC源有的一套线程。下面以例子来演示一下swift中使用线程。

其用包括常见的:NSThread,NSOperationQueue,GCG

  1. importUIKit
  2. classswiftThreadDemo:UIViewController
  3. {
  4. varqueue=NSOperationQueue()
  5. //init()
  6. //{
  7. ////alloc
  8. //super.init()
  9. //}
  10. deinit
  11. {
  12. //dealloc
  13. }
  14. functestGCDThread()
  15. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),{
  16. //这里写需要大量时间的代码
  17. forvari=0;i<100000;i++
  18. println("GCDthreadrunning.")
  19. }
  20. sleep(5);
  21. dispatch_async(dispatch_get_main_queue(),{
  22. //这里返回主线程,写需要主线程执行的代码
  23. println("这里返回主线程,写需要主线程执行的代码")
  24. })
  25. })
  26. functestNSThread()
  27. //方式一
  28. //NSThread.detachNewThreadSelector("threadInMainMethod:",toTarget:self,withObject:nil)
  29. //方式二
  30. varmyThread=NSThread(target:self,selector:"threadInMainMethod:",object:nil)
  31. myThread.start()
  32. functhreadInMainMethod(sender:AnyObject)
  33. println("NSThreadrunning.")
  34. println("NSThreadover.")
  35. functestNSOperationQueue()
  36. //func(op:NSOperation!)
  37. varmopt=myOperationThread()
  38. queue.addOperation(mopt)
  39. classmyOperationThread:NSOperation
  40. overridefuncstart()
  41. super.start()
  42. overridefuncmain()
  43. forvari=0;i<100000;i++
  44. println("NSOperationrunning.")
  45. println("NSOperationover.")
  46. }

调用:

    varst=swiftThreadDemo()
  1. st.testNSThread()
  2. sleep(2)
  3. st.testGCDThread()
  4. st.testNSOperationQueue()

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...