C#基础篇——线程(一)

灌水前言:一直以来想写自己的技术博客,一直没动手。这个作为我的开篇来讲讲吧

究其原因:

1.懒  总觉得技术博客看起来高深莫测,不愿深究,其实无论是技术博客还是其他什么事,你乍一看挺麻烦挺难的,进去了其实挺简单,而且现在的计算机提供了各种方便的功能

2.感觉自己技术不行,写上去丢人   其实看了好多的人说技术博客也是一个快速提升的过程,我也是抱着一部分提升的心态来的,一直以来都是自己埋头自己总结,写上来不说帮助别人,对自己提升应该还是有帮助的

好了,废话不多说,目前我的技术博客就从总结基础知识开始吧,后期会把之前自己基础方面的总结都放上来。

.先来理解几个基本定义

[线程]

[进程]

     何为进程,线程:计算机提供的一些功能,包括多个线程,多个线程协同进行

                           例:迅雷  就是多线程实现的网络进程,迅雷上面多部电影同时下载就是多个线程协同进行

[多线程]

    何为多线程:

                作用:用来处理资源的争夺,处理公共内存的数据

         应用方向:网络传输(后台任务)   不常规的逻辑更新(不包括画面更新,几乎所有的引擎都是渲染引擎)

[互斥锁](Mutex)

      何为互斥锁:多个线程都要用到公共内存数据,为解决公共数据使用冲突,当前线程使用数据的时候使用互斥锁                               将数据进行上锁,其他线程使用数据的话只能等待,只有当当前线程使用完后将公共数据释放其他                               线程才能使用。

                            即:公共数据没有线程使用的时候才可以使用

                 作用:解决多线程开发中公共内存数据的使用冲突

[信号量](Semaphore)

     何为信号量:公共区域有多个线程同时访问的时候,要有一定数量的限制,处于公共线程访问的线程数量就是信                              号量

                  作用:与互斥锁的功能一样    

                  注意:互斥锁是信号量唯一的特殊情况

[注意]

        在这里说下Unity中的协程:

                1.Unity中的API不可以在分线程中使用(自身开辟的都是分线程)

                   主线程是程序启动的时候自动启动的,实现类似在分线程中获取组件就必须使用协程

                2.在Unity中尽可能使用协程来解决分线程的功能

                3.开发方向提供协调机制   一方面防止线程和线程之间产生冲突,另一方面允许线程和献策好难过之间的资                    源共享(此处推荐使用互斥锁)

案例:

开启线程有两种方式(有参数和没有参数)
 线程需要手动控制开启
 lock(参数)  参数只能是引用数据类型  不能是基本数据类型
 分线程中  线程和线程之间的运行顺序不可估计

 

 

注意:主线程用Thread进行访问,不用我们停止或者释放线程,主线程由.NET Framework公共语言运行库自动完成的

 

第一次先写这么多,线程还是刚开始总结,后面会把之前总结的都慢慢补上。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值