前言
因为项目后期,好久没有更博了。最近项目推上线了,突然闲下来了。想写的东西很多。就先从多线程开始吧。
个人对线程的理解还不够透彻,希望如果有更好的看法可以在评论区提出,感谢。
什么多线程
在一个程序中,一些独立运行的程序片段叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”(Multithreading)。
在Unity中使用多线程能干什么?
使用Unity开发的应用,只能在主线程中访问Unity组件,这一点限制了部分的优化。不过小伙伴可以开一些辅助线程。
允许开线程来辅助的功能业务
- 大量的数据计算 (eg. A*寻路算法之类的)
- IO操作
- 解压缩资源
- 不涉及Unity组件的资源加载(Ps.关于涉及Unity组件的加载可以通过逻辑剥离来实现,这边只抛出一个idea供大家发散。)
举栗子的时间到了
- 首先就是继承MonoBehaviour啦。
/*----------------------------------------------------------------
// Copyright © 2016 Jhon
//
// FileName: Loom.cs
// Describle:
// Created By: Jhon
// Date&Time: 2016年10月14日 17:31:26
// Modify History:
//
//--------------------------------------------------------------*/
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using System.Threading;
public class Loom : MonoBehaviour
{
}
- 定义一个线程处理的 Item 结构,以及变量的定义。
#region StructMember
public struct DelayedQueueItem
{
public float time;