java開進程
① 求助 linux下怎麼啟動java進程 我yum install java 沒有java進程
java啟動時是一個虛擬機,也就是jvm,這個虛擬機中要運行java程序,它才會開啟進程,否則程序就結束了,這不是服務,沒有精靈進程。
比
如用java開啟jvm運行一個程序,這個程序在運行時才有進程,運行完了這個進程也會退出以釋放系統資源。如果開啟的是一個服務性的程序,如http
server(tomcat/jetty/jboss等等),它們要手動退出,退出之前會一直執行(因為是服務嘛,要是退出了還服務個什麼),那麼它是會
開啟一個進程的,當服務停止,進程也會消亡。
這樣說你能理解了嗎?
② 開機後,任務管理器中出現一大串javaws.exe進程是怎麼回事
可能是你有一些java進程在開啟的時候設置啟動了,比如有些Java的服務。類似eclipse等之類的,你可以在你的javaws.exe進程上點擊右鍵,查看屬性,就可以看到這個進程的安裝位置了。
③ JAVA程序開始之後VIRT佔用過高是什麼原因造成的,怎麼解決
從代碼的角度,軟體開發人員主要關注java.lang.OutOfMemoryError: Java heap space異常,減少不必要的對象創建,同時避免內存泄漏。
現在以一個實際的例子分析內存佔用的故障排查。
ps -mp 9004 -o THREAD,tid,time,rss,size,%mem
發現PS命令可以查到具體進程的CPU佔用情況,但是不能查到一個進程下具體線程的內存佔用情況。
④ java 中線程與進程的區別是什麼
進程,是針對於操作系統而言的
線程,是java中一個重要的類,主要用來多個方法一起執行
進程和線程都是由操作系統所體會的程序運行的基本單元,系統利用該基本單元實現系統對應用的並發性。進程和線程的區別在於:
簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.
線程的劃分尺度小於進程,使得多線程程序的並發性高。
另外,進程在執行過程中擁有獨立的內存單元,而多個線程共享內存,從而極大地提高了程序的運行效率。
線程在執行過程中與進程還是有區別的。每個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。但是線程不能夠獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。
從邏輯角度來看,多線程的意義在於一個應用程序中,有多個執行部分可以同時執行。但操作系統並沒有將多個線程看做多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。
進程是具有一定獨立功能的程序關於某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位.
線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位.線程自己基本上不擁有系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),但是它可與同屬一個進程的其他的線程共享進程所擁有的全部資源.
一個線程可以創建和撤銷另一個線程;同一個進程中的多個線程之間可以並發執行.