Unity中的多线程介绍及使用

有些不涉及U3D API的计算可以放在分线程里,能提高多核CPU的使用率。

 

总结:

1. 变量(都能指向相同的内存地址)都是共享的

2. 不是UnityEngine的API能在分线程运行

3. UnityEngine定义的基本结构(int,float,Struct定义的数据类型)可以在分线程计算

如 Vector3(Struct)可以 , 但Texture2d(class,根父类为Object)不可以。

 

UnityEngine定义的基本类型的函数可以在分线程运行

类的函数不能在分线程运行

obj.name

实际是get_name函数

分线程报错误:get_name  can only be called from the main thread.

Texture2D tt = new Texture2D(10,10);

实际会调用UnityEngine里的Internal_Create

分线程报错误:Internal_Create  can only be called from the main thread.

其他transform.position,Texture.Apply()等等都不能在分线程里运行。

结论: 分线程可以做 基本类型的计算, 以及非Unity(包括。Net及SDK)的API

分线程里print信息

基本的计算

计算Vector3

在分线程里创建并计算Vector3

在分线程里创建并调用Vector3的函数

多线程还可以用来Socket传输数据。

你可能感兴趣的:(Unity)