灌水前言:一直以来想写自己的技术博客,一直没动手。这个作为我的开篇来讲讲吧
究其原因:
1.懒 总觉得技术博客看起来高深莫测,不愿深究,其实无论是技术博客还是其他什么事,你乍一看挺麻烦挺难的,进去了其实挺简单,而且现在的计算机提供了各种方便的功能
2.感觉自己技术不行,写上去丢人 其实看了好多的人说技术博客也是一个快速提升的过程,我也是抱着一部分提升的心态来的,一直以来都是自己埋头自己总结,写上来不说帮助别人,对自己提升应该还是有帮助的
好了,废话不多说,目前我的技术博客就从总结基础知识开始吧,后期会把之前自己基础方面的总结都放上来。
.先来理解几个基本定义
[线程]
[进程]
何为进程,线程:计算机提供的一些功能,包括多个线程,多个线程协同进行
例:迅雷 就是多线程实现的网络进程,迅雷上面多部电影同时下载就是多个线程协同进行
[多线程]
何为多线程:
作用:用来处理资源的争夺,处理公共内存的数据
应用方向:网络传输(后台任务) 不常规的逻辑更新(不包括画面更新,几乎所有的引擎都是渲染引擎)
[互斥锁](Mutex)
何为互斥锁:多个线程都要用到公共内存数据,为解决公共数据使用冲突,当前线程使用数据的时候使用互斥锁 将数据进行上锁,其他线程使用数据的话只能等待,只有当当前线程使用完后将公共数据释放其他 线程才能使用。
即:公共数据没有线程使用的时候才可以使用
作用:解决多线程开发中公共内存数据的使用冲突
[信号量](Semaphore)
何为信号量:公共区域有多个线程同时访问的时候,要有一定数量的限制,处于公共线程访问的线程数量就是信 号量
作用:与互斥锁的功能一样
注意:互斥锁是信号量唯一的特殊情况
[注意]
在这里说下Unity中的协程:
1.Unity中的API不可以在分线程中使用(自身开辟的都是分线程)
主线程是程序启动的时候自动启动的,实现类似在分线程中获取组件就必须使用协程
2.在Unity中尽可能使用协程来解决分线程的功能
3.开发方向提供协调机制 一方面防止线程和线程之间产生冲突,另一方面允许线程和献策好难过之间的资 源共享(此处推荐使用互斥锁)
案例:
开启线程有两种方式(有参数和没有参数)
线程需要手动控制开启
lock(参数) 参数只能是引用数据类型 不能是基本数据类型
分线程中 线程和线程之间的运行顺序不可估计
注意:主线程用Thread进行访问,不用我们停止或者释放线程,主线程由.NET Framework公共语言运行库自动完成的
第一次先写这么多,线程还是刚开始总结,后面会把之前总结的都慢慢补上。