原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2019/0324/423.html
常州手游开发-Thread,Queue,Lock用法
			1、Thread  多线程
		
			Unity里普通用于Socket衔接,开一条线程接音讯。
		
			2、Queue 队列
		
			对象的先进先出汇合,能够规则特定类型的队列汇合,也能够什么类型都存入队列。
		
			Queue aaa = new Queue();   Queue<int> aaa = new Queue<int>(); 都是能够的。
		
			3、lock 关键字
		
			主要用于处置并提常州游戏开发培训问题、锁定独占对象。锁定的必需是援用类型!
		
			先写一个线程类,不用继承MonoBehaviour。
		
			public class TXC
		
			{
		
			    public Thread ThreadOne;
		
			    public Thread ThreadTwo;
		
			    public Queue<int> queue = new Queue<int>(); //先进先出队列
		
			    public void StartTXC()
		
			    {
		
			        //线程1
		
			        ThreadOne = new Thread(Count);       //线程开端办法
		
			        ThreadOne.IsBackground = true;       //后台线程会随着主线程完毕退出
		
			      //ThreadOne.Name = "TXC1";       //线程名字
		
			        ThreadOne.Start();                   //开端线程
		
			        //线程2
		
			        ThreadTwo = new Thread(Count);
		
			        ThreadTwo.Start();
		
			    }
		
			    public void Count()
		
			    {
		
			                                              //这里能够注释掉lock来测试
		
			            lock (queue)                      //锁定队列,必需等候一条线程访问完成后,别的线程才干运用
		
			            {
		
			                queue.Enqueue(1);             //入队
		
			             // queue.Dequeue();              //出队,返回队列开端处的对象,并且删除它!
		
			                Thread.Sleep(1000);           //线程休眠毫秒数
		
			             // ThreadOne.Suspend();          //暂停线程
		
			             // ThreadOne.Resume();           //继续线程
		
			            }
		
			     }
		
			}
		
			再写一个类:
		
			public class NewBehaviourScript : MonoBehaviour {
		
			    TXC xc;
		
			void Start () {
		
			        xc = new TXC();
		
			        xc.StartTXC();
		
			}
		
			void Update () {
		
			         Debug.Log(xc.queue.Count);  //lock的话,手机App外包打印先1后2,不lock直接2,由于两个线程同时运用了队列。
		
			}
		
			    void OnApplicationQuit()
		
			    {
		
			       xc.ThreadTwo.Abort();               //终止线程1
		
			       xc.ThreadOne.Abort();               //终止线程2
		
			    }
		
			}
		上篇:上一篇:常州手游开发-Unity3d委托模式详解
下篇:下一篇:Unity3d Singleton与对象pool




