我正在学习Java for Android以及我学习的关于Thread和Message Queue的一些内容。
1)主线程有自己的消息队列,可以通过消息队列中的Handler形成新线程。
2)新线程运行时,也可以拥有自己的消息队列。从新线程到主线程的通信是通过相同的处理程序。
我有一些问题,在C ++中,线程间通信不是由处理程序完成的。我认为它是由消息队列或管道完成的。
我的问题是,在主线程和辅助线程之间的通信方面,如何将来自Java的Handler概念与来自C ++的消息队列或管道相关联。
答案 0 :(得分:0)
在Java和C ++中,您可以拥有处理程序或消息队列,或传递ExecutorServices工作方式的命令对象。
Java倾向于更喜欢将细节隐藏起来,让你只编写最基本的代码(即使语言本身非常冗长)C ++倾向于更喜欢暴露低级构造。
但是,没有理由不能用每种语言做任何事情。
BTW:我更喜欢将命令对象Runnable
和Callable
传递给Java中的ExecutorServices。即没有处理者或消息队列或线程担心。