logo
Khóa học lập trình game server - smartfox - game đa người chơi Học lập trinh game online 3dvietpro Sửa chữa và thiết kế website .net
Welcome Guest! To enable all features please Đăng nhập or Đăng ký.

Thông báo

Icon
Error

Tùy chọn
Xem
Xem bài viết cuối Go to first unread
admin  
#1 Đã gửi : 08/02/2023 lúc 08:49:52(UTC)
admin

Danh hiệu: Administration

Nhóm: Guests
Gia nhập: 19-08-2014(UTC)
Bài viết: 145

Được cảm ơn: 7 lần trong 6 bài viết
Unity Job System là một tính năng mới trong Unity 2018.1 và là một công cụ để tạo và quản lý các tác vụ được chạy trên nhiều luồng một cách an toàn và dễ dàng. Để sử dụng Job System, bạn cần phải cài đặt Unity 2018.1 trở lên và bật tính năng Burst Compiler trong Unity Editor.

Để sử dụng Job System, bạn cần tạo một struct đại diện cho tác vụ của bạn và sử dụng struct đó để tạo một đối tượng Job. Bạn có thể sử dụng [BurstCompile] attribute để đánh dấu một struct như một Job và sử dụng Burst compiler để tối ưu hóa cho việc xử lý.

Trích dẫn:
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;

public class MyMonoBehaviour : MonoBehaviour
{
private int[] data;
private int[] results;

private void Start()
{
data = new int[10000];
results = new int[10000];

// Tạo một Job với struct MyJob
MyJob job = new MyJob
{
data = new NativeArray<int>(data, Allocator.TempJob),
results = new NativeArray<int>(results, Allocator.TempJob)
};

// Tạo một đối tượng JobHandle và lấy nó từ việc Schedule của job
JobHandle handle = job.Schedule(data.Length, 100);

// Đợi cho Job kết thúc
handle.Complete();

// Sử dụng kết quả
for (int i = 0; i < results.Length; i++)
{
Debug.Log(results[i]);
}

// Giải phóng tài nguyên đã sử dụng
job.data.Dispose();
job.results.Dispose();
}

[BurstCompile]
private struct MyJob : IJobParallelFor
{
public NativeArray<int> data;
public NativeArray<int> results;

public void Execute(int index)
{
// Xử lý dữ liệu tại vị trí index
results[index] = data[index] * 2;
}
}
}


chúng ta đã tạo một Job với struct MyJob và sử dụng JobHandle để chạy Job trên nhiều luồng. Chúng ta cũng đã sử dụng tất cả các tài nguyên sử dụng trong Job để tránh tình trạng tài nguyên bị leak.
Bạn bình luận ngay tại đây
Ai đang xem chủ đề này?
Guest
Di chuyển  
Bạn không thể tạo chủ đề mới trong diễn đàn này.
Bạn không thể trả lời chủ đề trong diễn đàn này.
Bạn không thể xóa bài của bạn trong diễn đàn này.
Bạn không thể sửa bài của bạn trong diễn đàn này.
Bạn không thể tạo bình chọn trong diễn đàn này.
Bạn không thể bỏ phiếu bình chọn trong diễn đàn này.

Powered by YAF 2.1.0 | YAF © 2003-2024, Yet Another Forum.NET
Thời gian xử lý trang này hết 0.063 giây.