idea運行不了java項目?
ID:
1.首先,檢查是否設置了sdk。您可以在文件項目結構項目中查看和設置它。將項目SDK:設置為版本1.8。將項目語言l:設置為相應的版本8。在JavaS:設置為指向我們創建的out文件夾。最后,單擊應用,然后單擊確定。
2.檢查輸出路徑設置。
點擊文件-gt項目結構-gt模塊-gt路徑-gt勾選繼承項目編譯輸出路徑,設置完成后點擊應用-gtOK。
再試一次,應該能正常工作。
為啥我用IDEA測試多線程,一直是先運行main()方法中的代碼?然后才會執行多線程?
看到你的問題,我可以我不得不進來。也許你剛剛開始在程這個行業。雖然我是普通班出身,但是你知道現在大學生活太豐富了,學習永遠是最后一名。結果畢業的時候找工作遇到了困難,所以那時候我就開始系統的學習我的學科。這個行業,怎么說呢,可以很快習慣培訓,但是我覺得還是需要一些基礎知識支撐的。比如計算機組成原理,微機原理,匯編語言,編譯原理,操作系統,軟件工程,面向對象方法,計算機網絡,當然還有像離散數學,統計學這樣的課程,都是這個行業的基礎課。
嗯,我對不起,好像有點遠。我先回答你的問題:
想要理解你的問題,首先需要理解兩個概念,什么是流程,什么是線程,它們之間是什么關系,是如何工作的。
流程:
我是根據書上寫的這個概念:進程是程序在計算機中數據集上的運行活動,是系統中資源分配和調度的基本單位,是操作系統結構的基礎。在早期面向進程設計的計算機結構中,進程是程序的基本執行實體;在當代面向線程的計算機體系結構中,進程是線程的容器。程序是指令、數據及其組織形式的描述,進程是程序的實體。
這個解釋似乎有點混亂。其實簡單點就是我們操作系統調度的單元,比如我們開始的想法,是操作系統中的一個進程。我們經常使用的Tomcat也是啟動后的一個進程。啟動后,它們在操作系統中都有一個唯一的進程id。我們常說強行關閉一個軟件,其實就是在扼殺進程。
過程的五態模型
線程:
線程是一個執行路徑,是程序執行時的最小單位。它是一個進程的執行流,是CPU調度和分派的基本單位。一個進程可以由很多線程組成,這些線程共享進程的所有資源,每個線程都有自己的棧和局部變量。線程由CPU獨立調度和執行,允許多個線程在多CPU環境下同時運行。同樣,多線程也可以實現并發操作,每個請求都被分配一個線程來處理。
進程和線程之間的關系:
程序是一個進程,程序中的多個任務稱為線程。進程是資源分配和調度操作的基本單位,即處理器調度的基本單位。一個線程只能屬于一個進程,一個進程可以有多個線程,但至少要有一個線程。線程是操作系統可以識別的最小執行和調度單元。資源被分配給一個進程,同一進程的所有線程共享該進程的所有資源。同一進程中的多個線程共享代碼段(代碼和常量)、數據段(全局變量和靜態變量)和擴展段(堆存儲)。但是每個線程都有自己的棧段,也叫runtime,用來存儲所有的局部變量和臨時變量,也就是每個線程都有自己的棧和局部變量。在線程執行過程中,它們需要協同同步。不同進程的線程應該通過消息通信來同步。結合你的問題解釋:
你的問題是為什么先拿主方法。其實我覺得可以理解為一種傳統,java作為后來的語言,是對之前語言的致敬。根據程序運行的機制,一個程序的執行必須由另一個之前的程序啟動,最原始的就是操作系統。說白了,主要方法就是jvm默認尋找的方法(有很多解釋,比如設計匯編指令,設計C語言等等。),所以你可以理解java是用C語言寫的,C語言使用的main方法的聲明就是入口,java也是如此。說的通俗一點,main在編譯器的源代碼中被標記為程序執行的入口。我覺得我說的不是人話。
也就是說,你在IDEA中點擊運行的程序就是一個進程,而這個進程的入口方法就是mian方法。你說的多線程就是你啟動的這個進程中的單元,它當然會在mian方法之后執行。
好吧,我不我不想寫。我不我不知道我在做什么。;我在寫東西。事實上,我知道一些事情,但我不能不要寫它。可能我還是有點見識的。希望對你有一點幫助。