协程回调是线程安全的吗?
Are co-routine callbacks thread-safe?
上下文:
根据这个 ArticleUnity 协程不是多线程的。因此,如果协程回调正在访问全局变量,我认为不会有线程冲突。
示例:
//Declaration
private IEnumerator Resolve(WWW request, Action<WWW> callback)
{
while (!request.isDone)
{
yield return null;
}
callback(request);
}
//Invocation - called constantly
StartCoroutine(Resolve(request, request => {GlobalVar = request.text;}));
有过这种经历的人能否确认协程确实是同步的或者GlobalVar
是线程安全的?
我最近在评论中和某人就此发生了争执。
我现在找不到那些评论,但是... Found it.
不,协程是not threads并且不能遇到竞争条件
上下文:
根据这个 ArticleUnity 协程不是多线程的。因此,如果协程回调正在访问全局变量,我认为不会有线程冲突。
示例:
//Declaration
private IEnumerator Resolve(WWW request, Action<WWW> callback)
{
while (!request.isDone)
{
yield return null;
}
callback(request);
}
//Invocation - called constantly
StartCoroutine(Resolve(request, request => {GlobalVar = request.text;}));
有过这种经历的人能否确认协程确实是同步的或者GlobalVar
是线程安全的?
我最近在评论中和某人就此发生了争执。
我现在找不到那些评论,但是... Found it.