我在Linux中使用pthread,并且实现了两个作为线程运行的类(它从继承了抽象POSIX线程的另一个类)。 Thread1正在启动并停止thread2。在线程2运行期间,线程1正在调用线程2类的函数。我的问题是什么时候thread1调用这个函数,什么时候执行?它是否在调用时及时执行,以便thread2执行此方法的操作并在此后继续停止?Linux线程执行流程
回答
请勿混淆类和线程。类和线程是独立和不相关的概念。从不同的类执行代码不会导致代码在不同的线程中运行。在线程X上调用的任何方法都将在线程X上运行。
例如有两种方法。一种方法无限期运行(例如run()),另一种方法由其他线程调用。我的问题是,当第二个方法被执行时被其他线程调用?由于thread1正在连续执行第一个方法,它是否停止执行它,并开始执行第二个方法,并在完成时继续它在第一个方法中停止的位置。 –
应用我的最后一句话:“线程X上调用的任何方法都将在线程X上运行。”当你从另一个线程调用一个方法时,它将在另一个线程上运行。第一个线程对此方法调用一无所知;这个方法属于哪个* class *无关紧要。类和线程是独立和不相关的概念。 –
确定它会在线程X上运行,但是它会在被调用的时候运行吗? –
线程执行可调参数,这些参数在您的情况下可能是成员函数。如果在一个类中封装一个phtread,只有相应的成员函数变成平行的,其他成员函数的其他调用仍然会在调用者线程上运行。
- 1. 在Linux中执行线程程序
- 2. 执行流程
- 3. C/Linux中的线程执行时间
- 4. 线程执行
- 5. Java - 执行流程
- 6. Java执行流程?
- 7. C++执行流程
- 8. 执行多线程进程
- 9. 执行多线程程序
- 10. 线程池执行程序
- 11. 当前在Linux中执行线程编程的正确方法
- 12. 执行线程onSensorChanged
- 13. 线程不执行
- 14. .net线程执行
- 15. 而线程执行
- 16. 执行程序PHP的Linux
- 17. Linux进程执行历史
- 18. 从linux执行X11程序
- 19. linux远程执行命令
- 20. std ::线程何时执行线程?
- 21. 如何使用directshow执行进程间(非线程)流共享?
- 22. Android线程 - 在执行所有其他线程之前执行一个线程
- 23. C++线程的执行时间和执行线程在另一个线程
- 24. 执行并行线程池
- 25. 执行线程'平行'
- 26. 误解JavaScript执行流程
- 27. Backbone.js会话执行流程
- 28. 执行交流程序的
- 29. Java递归执行流程
- 30. Angularjs各个流程执行
你写的东西没有意义。线程中的线程不是一个类。 pthread中没有类。发布代码并慢慢准确地解释你在做什么。 – Dariusz