在計算機中當一個程序運行的時候就會創(chuàng)建至少一個進程,例如當我們運行QQ的時候,系統(tǒng)就會創(chuàng)建進程來處理我們平時的一些操作,當我們打開任務管理器的時候,在進程的列表里面就可以找到QQ.exe的運行程序;
在計算機中處理進程之外還有另一個概念就是線程,線程是存在于進程當中,一個進程可以包含多個線程;當我們的計算機有多核處理器的時候,使用多線程可以加快程序的運算速率;如果一個進程中只有一個線程,當程序遇到一個比較耗時的計算的時候,由于程序是單線程的,那么程序只能等待這個運算結束的時候再繼續(xù)運行,這樣會大大的降低程序的效率;當時用多個線程的時候,在某個線程遇到比較耗時的運算的時候,該線程可以繼續(xù)自己的運算,但是其他的線程也可以同步進行,這樣當耗時的計算結束之后,其他線程也將自己所需要的東西執(zhí)行完畢,這樣就會很大的提高程序執(zhí)行效率;
在程序運行中對于文件的保存相對于處理器的運算速度來說是很慢的,當我們程序中接收到一個保存文件的信息之后,我們可以創(chuàng)建一個保存文件的線程,在主線程中我們可以繼續(xù)進行我們的其他運算,這樣當文件保存好之后,我們的其他運算也會完成,互不影響;
在Java中我們可以創(chuàng)建一個自己的類繼承于Thread類,并且重寫run() 方法,當線程啟動之后,run()方法里面的操作都在線程中進行處理,而不會影響主線程的信息;
當我們創(chuàng)建好一個自定義線程類之后,我們可以創(chuàng)建這個自定義線程的對象,進行線程的啟動;線程須調用start();方法進行啟動,這樣run()方法里面的內容才會在線程中運行;如果我們不去調用start()方法,那我們只是創(chuàng)建了一個普通的類,即使我們手動調用run()方法,run()方法里面的內容也不會在線程中運行;
在Java中線程主要有初始狀態(tài),運行狀態(tài),阻塞狀態(tài),終止狀態(tài)等;當我們新創(chuàng)建一個線程對象的時候,此時線程的狀態(tài)為初始狀態(tài);當我們調用start()之后,此時的線程才被激活成為運行狀態(tài),之后run()方法里面的信息才會在子線程中運行;我們可以在不同的階段調用不同的方法將線程設置為不同的狀態(tài);比如有時候我們的操作需要等待其他線程中運算結束之后才可以繼續(xù)進行,這時候我們就可以將線程設置為等待狀態(tài),當需要的資源滿足條件之后,可以繼續(xù)運行當前的線程;
>>本文地址:http://uj2y2uok.com/zhuanye/2019/48089.html
聲明:本站稿件版權均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?
下一篇 第一頁