文档章节

Unity C# lock关键字的坑

梦想游戏人
 梦想游戏人
发布于 09/19 20:35
字数 309
阅读 105
收藏 0

Unity 5.6 环境下的 lock关键字,在特定的多线程环境下会死锁 崩溃

其中一种情况:

异步socket 操作,由于内部是一个线程池回调的异步回调,操作同一个对象时 lock关键字会概率出现死锁 闪退,

(发现现象的例子是服务器不断重启或者WIFI断开打开,导致连接断开客户端异步任务大量要在主线程执行导致闪退,而主线程保证线程安全的是用关键字lock来处理的 (RpcTcpSocket.cs MainThread.cs))

 

解决方案:采用常规的Mutex 来保证线程安全 后 测试没在出现崩溃

 

猜想原因可能是 异步socket内建的il2cpp线程池和lock关键字相互之间有某种概率性BUG 可能池内的非递归锁 线程内死锁了

© 著作权归作者所有

共有 人打赏支持
梦想游戏人
粉丝 36
博文 432
码字总数 123495
作品 0
成都
私信 提问
Unity 3D与Android Studio安卓交互之-导出jar包

u3d与安卓 jar 包交互 Chinar 教程效果: import android.support.v7.app.AppCompatActivity;import android.os.Bundle; import com.unity3d.player.UnityPlayer;import com.unity3d.player.......

chinar-yunxi
04/12
0
0
Android Studio安卓导出aar包与Unity 3D交互

Unity与安卓aar 包交互 Chinar 教程效果: import android.support.v7.app.AppCompatActivity;import android.os.Bundle; import com.unity3d.player.UnityPlayer;import com.unity3d.playe......

chinar-yunxi
04/19
0
0
[Unity脚本运行时更新]C#5新特性

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhenghongzhi6/article/details/82797533 洪流学堂,让你快人几步!本文首发于洪流学堂微信公众号。 本文是该...

关尔Manic
09/21
0
0
Unity脚本运行时更新带来了什么?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhenghongzhi6/article/details/82705584 洪流学堂,让你快人几步!本文首发于洪流学堂微信公众号。 本文是该...

关尔Manic
09/14
0
0
Unity C#代码封装dll文件完美教程(Chinar-开发者必经之路)

脚本封装/创建DLL库 本文提供全图文流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、...

chinar-yunxi
09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
4
0
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
3
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
3
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
5
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部