我知道允许进程间通信的概念。我的程序需要启动第二个线程。我知道如何从Java/Android中将数据从一个线程传递或推送到另一个线程,但我没有看到有关“拉取”数据的大量信息。子线程需要经常抓住父线程上的数据。这是如何完成的?我如何从另一个线程或进程中获取数据(Android/Java)
回答
由于线程共享内存,您可以使用线程安全的数据结构。一些参考java.util.concurrent。该软件包中的所有内容均专为多线程情况而设计。
就你而言,你可能想要使用LinkedBlockingQueue。通过这种方式,父线程可以将东西放入队列中,并且子线程可以在喜欢的时候抓住它。如果队列为空,它也允许子线程阻塞。
您可能会混淆线程和数据。线程是代码执行的行,它可以对某些数据进行操作,但它们本身不是数据,也不包含数据。数据包含在内存中,线程由CPU(或vm或您选择的任何级别)执行。
您以相同的方式访问数据,无论是否在线程中完成。那就是你使用变量或对象字段等。但是对于线程,你需要确保在线程同时访问相同数据时不会出现竞争状态。总之,如果你有一个对象有一个由线程执行的方法,只要你确保只有一个线程同时执行它,你仍然可以以常规的方式从这个对象获取数据。
我认为@ user966005令人困惑的是进程间和进程内而不是数据。 – Merlin
对于我'子线程需要在父线程中获取数据'听起来像是一个用词不当。但除非他澄清,否则肯定很难说出问题所在。 –
- 1. 如何从Java中的另一个线程的一个线程中获取数据?
- 2. 从另一个进程获取信息
- 3. 从工作者线程获取数据到另一个
- 4. 在另一个进程中获取线程的EBP
- 5. 如何从子线程或其他线程获取父线程?
- 6. Java Swing应用程序:如何从GUI线程获取数据到另一个线程?
- 7. 如何获取一个进程在Bash中的另一个进程的PID?
- 8. 从线程中获取数据从XML?
- 9. 从C++中的另一个进程解锁一个线程
- 10. 如何将数据从一个线程传递到另外三个线程?
- 11. 如何从监视器中断另一个线程线程
- 12. 从另一个线程捕获异常
- 13. 从另一个线程运行线程
- 14. 从另一个线程操作线程
- 15. 如何确定从另一个线程创建哪个线程?
- 16. 如何从另一个线程
- 17. 如何从另一个线程
- 18. C#,C++,WinAPI - 从另一个进程获取窗口数
- 19. 如何从我的存储过程中获取一组数据?
- 20. 一个线程如何在另一个线程中被杀死
- 21. 如何从另一个进程中捕获退出消息?
- 22. 如何获取Java进程中的线程数
- 23. 如何阻止UI线程从另一个线程或强制一个窗体在UI线程内运行
- 24. 在另一个Windows进程中获取当前线程的语言环境
- 25. Linux:通过一个进程从串口读取数据,并用另一个进程写入数据
- 26. scrollToRowAtIndexPath从另一个线程
- 27. HttpWebRequests从另一个线程
- 28. 杀从另一个线程
- 29. 从另一个线程DoDragDrop()
- 30. 从另一个线程
您是否需要比共享内存更多的东西? –