有人可以解釋爲什麼在JVM中運行的每個線程中,一次只能有一個方法是活動的?爲什麼不是兩三個,但只有一個?爲什麼在JVM中運行的每個線程中一次只能激活一個方法?
1
A
回答
3
每個線程同步運行代碼。一旦線程完成了當前的工作分配,線程只會得到更多的工作。至於爲什麼一次只能有一個「活動」方法,一個方法可以調用其他方法或返回。一旦方法返回,它顯然不再處於活動狀態,類似地,一旦方法調用另一個方法,被調用的方法就變爲活動方法。
6
根據定義,線程是按順序執行代碼的東西。所以沒有辦法在一個線程中執行多個方法。如果要並行執行兩個或多個方法,請使用多個線程。您可能需要查看Java concurrency tutorial以瞭解線程的基本知識。
2
2
每個時鐘週期有多條指令,方法內聯,CPU流水線和指令重新排序,一個線程可以同時執行來自多個方法的指令,但只有在沒有差別時才應該這樣做。即想法是在不改變行爲的情況下提高績效。
相關問題
- 1. 爲什麼線程只運行一次
- 2. 爲什麼線程只運行一次?
- 3. Python線程。爲什麼我一次只能運行一個線程
- 4. 爲什麼Runnable中的方法只能運行一次?
- 5. 一次只激活一個按鈕
- 6. 爲什麼我只能在我的方法中只運行一行?
- 7. 一次只能由一個線程調用的方法
- 8. Java,多個線程,每次只執行一個線程
- 9. 激活鎖定一個正在運行的線程的Android
- 10. 爲什麼OpenMP程序只運行一個線程
- 11. 爲什麼這個幻燈片/切換隻能運行一次?
- 12. 線程只運行一次
- 13. 在Angularjs中只運行一次方法
- 14. 爲什麼此方法無失敗每運行一次會產生一個「malloc_error_break」?
- 15. 在Java中,如何運行differentes方法,每個線程中有一個?
- 16. 每次顯示活動時運行一個方法
- 17. 爲什麼save方法只在for循環中執行一次?
- 18. 只有一個SparkContext可能在此JVM中運行 - Flask
- 19. PHP方法只能運行一次[SQL]
- 20. 爲什麼兩個線程在我只調用ExecutorService.execute()一次?
- 21. php - 爲什麼foreach只運行一次?
- 22. 只能在線程/循環中運行一次
- 23. 爲每個班級運行一次,但爲組運行一次
- 24. 爲什麼我的活動只運行一次?
- 25. 觸發器只能運行一次,每天運行一次
- 26. 爲什麼QThread只打印兩個線程中的一個?
- 27. 爲什麼一個線程在ASP.NET MVC(再次)中被中止?
- 28. 爲什麼每個應用程序都有一個JVM?
- 29. 如何讓一個腳本只能由gpo爲每個用戶運行一次?
- 30. 如何進行一次只能運行一次的活動?
因爲如果它一次可以運行兩件事情,它們會被稱爲兩個線程。 –
聽起來像哲學的東西... –
看起來像一個新的操作系統設計:)。 – Akshat