我构建了一个应用程序,它可以在不着色的情况下对来自位图的像素进行重新着色,而只需逐个像素的CPU进行着色。这对我来说足够快,但我想知道CPU是否默认使用了多线程,而没有在编程中实际使用它?默认情况下是Android多线程而不使用它?
回答
默认情况下,应用程序启动运行的线程(称为 “主”)。此线程非常重要,因为它负责将事件分派到相应的用户界面小部件 (包括绘图事件)。它也是您的应用程序与来自Android UI工具包 (来自android.widget和android.view包的组件)交互组件的线程。如 这样,主线程有时也被称为UI线程。
和螺纹的关系,以CPU为(多线程例子):
多线程程序的这种优势使得它在具有多个或多计算机系统快 操作因为程序的线程自然会借助 来真正实现并发执行。在这种情况下,程序员必须小心避免竞态条件和其他非直观行为。为了使数据正确地被操作,线程通常需要及时会合以便 以正确的顺序处理数据。为了防止在修改过程中同时修改公共数据或 ,中的线程还可能需要 互斥操作(通常使用信号量实现)。大意使用这样的原语可能会导致死锁。
多线程的另一种用途,即使对单CPU系统也适用, 是应用程序对输入保持响应的能力。在 单线程程序中,如果主执行线程阻塞了长时间运行的任务,整个应用程序可能会冻结。通过 将此类长时间运行的任务移动到与主执行线程同时运行 的工作者线程,可能使 应用程序在后台执行任务 时仍对用户输入做出响应。另一方面,在大多数情况下,多线程并不是保持程序响应的唯一方式,使用非阻塞I/O 和/或Unix信号可用于获得类似结果。
长话短说。不,你的程序不会是多线程的,除非你明确告诉它。而在Android的情况下,AsyncTask将是与UIThread(main)交互时要走的路线。
谢谢,这就是我一直在寻找的东西。 – csnewb
没问题:) @csnewb –
- 1. 产量和默认情况||不输出默认情况下
- 2. 默认情况下,使qmake使用qt5
- 3. 默认情况下,TensorFlow作业是否使用多个核心?
- 4. 默认情况下系统PIP而不是virtualenv PIP?
- 5. 表仅在交互时显示,而不是默认情况下
- 6. 默认情况下是GLfloat还是GLdouble?
- 7. 如何使Octave在默认情况下使用“gnuplot”而不是“fltk”?
- 8. 默认情况下scala并行集合有多少个线程使用?
- 9. Switch语句。使用默认情况下
- 10. 默认情况下,JMS使用HTTP?
- 11. 默认情况下显示android SearchView EditText
- 12. 默认情况下,在Zend Framework URL中使用破折号( - )而不是加号(+)
- 13. Rails&Nginx - 默认情况下如何让$ rails s使用Nginx而不是WEBrick?或
- 14. 默认情况下如何让vim使用缓冲区而不是stdout?
- 15. 在什么情况下应该使用AUTOINCREMENT而不是默认的ROW ID?
- 16. 安卓:默认情况下
- 17. 默认情况下,法国
- 18. 默认情况下,Constexpr lambda?
- 19. 默认情况下在VBox
- 20. 在默认情况下
- 21. FactoryGirl在默认情况下
- 22. ,async:默认情况下是否为假?
- 23. ,默认情况下是安全的?
- 24. 默认情况下python-excel不匹配
- 25. 默认情况下不会执行C++
- 26. DeltaImport默认情况下不会发生
- 27. 引导3.0.2默认情况下不
- 28. PHP - 卷曲默认情况下不
- 29. 默认情况下使静态数据线程安全是什么意思?
- 30. 默认情况下发送BASIC认证,而不是等待HTTP 401
你能提供你的代码吗? :) –
哦,我只是问自己,如果可能的话,不是为了解决任何问题。该代码是一个非常具体的实现。你想要自己的代码? – csnewb
哦,不,但谢谢你! :P我只是好奇,如果你正在调用自己创建线程的任何对象。 :D –