z****e 发帖数: 54598 | 1 比如脚本,脚本本身就是简化编程,不需要理解各种乱七八糟的概念
就能上手写的东西,那当然默认就是单线程的,上来就多线程
那还简化什么?
还有一个是gui,因为人眼对刷新频率非常敏感
如果低于一定频率,人眼会明显感觉到差异
所以一定要保证ui线程刷新不被打断
一般多线程的冲突和锁对于ui线程的影响是致命的
所以尽量简化,就不要搞多线程了
即便多线程更接近客观事实
这个主要是在游戏上用得比较多
如果你问游戏里面得多线程
一般下面就会有人回答说,你要控制主线程
然后让主线程loop,然后控制每一次loop消耗时间酱紫
这就是所谓的伪多线程 |
z****e 发帖数: 54598 | 2 nonblock主要是为了不打断主线程
但是有些时候有些任务又会占用线程太长时间
所以如果不让主线程继续刷新的话
整个画面就停滞了,所以必需先放开主线程
也就是ui线程,然后分配时间片给另外启动的那个线程
等另外那个线程执行结束之后,再让主线程callback那个结果
酱紫
话说做图形学的话,这些应该是常见的问题
不明白几个做图形的为什么不结合实际例子回答这种问题 |
x****u 发帖数: 44466 | 3 没说到点子上。现在的GUI都是多线程保证流畅的,但逻辑部分是单线程。
【在 z****e 的大作中提到】 : 比如脚本,脚本本身就是简化编程,不需要理解各种乱七八糟的概念 : 就能上手写的东西,那当然默认就是单线程的,上来就多线程 : 那还简化什么? : 还有一个是gui,因为人眼对刷新频率非常敏感 : 如果低于一定频率,人眼会明显感觉到差异 : 所以一定要保证ui线程刷新不被打断 : 一般多线程的冲突和锁对于ui线程的影响是致命的 : 所以尽量简化,就不要搞多线程了 : 即便多线程更接近客观事实 : 这个主要是在游戏上用得比较多
|
z****e 发帖数: 54598 | 4 多线程的话,一起刷新主界面?
会闪,我看android还是一个主线程在跑
【在 x****u 的大作中提到】 : 没说到点子上。现在的GUI都是多线程保证流畅的,但逻辑部分是单线程。
|
x****u 发帖数: 44466 | 5 闪不闪取决于是否用buffer,和单线程多线程无关。
现代的GUI引擎非常类似浏览器,工作线程一大堆。
【在 z****e 的大作中提到】 : 多线程的话,一起刷新主界面? : 会闪,我看android还是一个主线程在跑
|