当前位置: 首页 > article >正文

Unity笔试常考

线程同步的几种方式

1.信号量pv操作
2.互斥加锁
3.条件变量

五层网络协议指的是哪五层

1.应用层
2.运输层
3.网络层
4.链路层
5.物理层

TCP和UDP区别

tcp 面向连接,保证发送顺序,速度慢,必须在线,三次握手,4次挥手
udp 不需要连接,适合直播推流,速度快,对方可能丢包

深度缓存的作用

shader是什么,简述工作原理

mipmap是什么,有什么优缺点?

根据距离的远近决定物体绘制时候选择的贴图纹理
优点:更低的像素分辨率,减轻渲染压力
缺点;占用更多内存,增大打包存储

OpenGL常用缓存buffer

Frame Buffer
Depth Buffer
Color Buffer
Stencil Buffer
https://www.cnblogs.com/ArsenalfanInECNU/p/18001468

shader透明公式

协程和线程的异同

协程通过迭代器每隔一段时间看一眼是否满足条件,根据条件决定是否进行到协程的下一句,协程依旧在主线程上运行

在一个完整的生命周期中,有哪些协程参与工作,如果有,是在哪几个阶段?

update yield retur null
lateupdate yield return waitforendframe
fixedupdate yeidl return waitforfixedupdate

FishManager是一个单例类,且这个单例可能被多个线程引用,完成类的定义

public class FishManager
{
    // 私有静态变量用于存储单例实例
    private static volatile FishManager _instance;
    
    // 锁对象用于同步线程
    private static readonly object _lock = new object();

    // 私有构造函数防止外部实例化
    private FishManager()
    {
        // 初始化代码
    }

    // 公共静态方法用于获取单例实例
    public static FishManager Instance
    {
        get
        {
            // 第一次检查:如果实例已经存在,则直接返回
            if (_instance == null)
            {
                // 进入同步块之前再次检查实例是否已经被创建
                lock (_lock)
                {
                    // 第二次检查:确保在进入锁之后没有其他线程创建了实例
                    if (_instance == null)
                    {
                        _instance = new FishManager();
                    }
                }
            }
            return _instance;
        }
    }
 }

写出下列代码的输出结果

a={[1]="a1",[2]="a2",[3]="a3",[5]="a4",[6]="a5"}
for key,value in pairs(a) do
	print(key,value)	
end

在这里插入图片描述

删除链表中的第n个节点

在这里插入图片描述

求出包含重复元素的整数数组的所有可能得子集

在这里插入图片描述
在这里插入图片描述

class Solution {
public:
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        // 时间复杂度O(N*2^N),空间复杂度O(N)
        vector<vector<int>> ans;
        vector<int> path;
        sort(nums.begin(), nums.end());
        dfs(nums, 0, path, ans);
        return ans;
    }
    void dfs(vector<int>& nums, int idx, vector<int> &path, vector<vector<int>> &ans) {
        if (idx == nums.size()) {
            ans.push_back(path);
            return;
        }
        path.push_back(nums[idx]);
        dfs(nums, idx + 1, path, ans);
        path.pop_back();
        // 如果不选当前数,则后面和这个数相同的数都要跳过
        while (idx + 1 < nums.size() && nums[idx] == nums[idx + 1]) ++idx;
        dfs(nums, idx + 1, path, ans);
    }
};

用一段Lua代码实现类的继承

用lua代码启动一个协程,并在1秒后输出’666’

Lua代码怎么避免内存泄露,说说你的理解

闭包内的变量不使用了就置为nil


http://www.kler.cn/a/540757.html

相关文章:

  • DeepSeek本地部署详细指南
  • 【CubeMX-HAL库】STM32F407—无刷电机学习笔记
  • 食品饮料生产瓶颈?富唯智能协作机器人来 “破壁”
  • git rebase 和 git merge的区别
  • 代码随想录二刷|回溯4
  • C#中的Frm_Welcome.Instance.Show(),是什么意思
  • 没用的文章又➕1
  • 如何使用Xcode进行iOS应用开发?
  • 如何定义“破坏环境”
  • pnpm的指令和优点
  • 阿里AI通义千问官网入口、APP下载,使用教程
  • 本地部署deepseek-r1:7b模型
  • 8、Python 面试题解析:实例方法、静态方法和类方法的区别
  • w~自动驾驶~合集17
  • C#程式状态机及其Godot实践
  • Docker的深入浅出
  • 如何利用DeepSeek结合深度学习与NLP技术,实现跨模态搜索的语义理解与个性化推荐
  • Firefox无法隐藏标题栏
  • 单片机成长之路(51基础篇) - 008 C51 的标示符和关键字
  • Tauri教程-实战篇-第六节 托盘、请求完善
  • VSCode中出现“#include错误,请更新includePath“问题,解决方法
  • Jsoniter Unmarshal类型错误的友好提示
  • Segformer模型的平台部署和项目应用
  • N-Beats:一种用于时间序列预测的纯前馈神经网络模型
  • 仿 RabbitMQ 实现的简易消息队列
  • 【Docker】从技术架构到容器实战{空间隔离/资源控制/LXC容器/mount}