今天初步了解了多線程的一些知識(shí)..
?
首先,對(duì)于現(xiàn)在的電腦來(lái)說(shuō),操作系統(tǒng)通常都可以執(zhí)行好幾個(gè)程序,可是CPU只有一個(gè),因此,通常采用分時(shí)的方式(分時(shí)操作系統(tǒng))來(lái)"同時(shí)"處理多個(gè)進(jìn)程.而"同時(shí)"卻并非真正意義上的"同時(shí)",而是每個(gè)進(jìn)程分別在某個(gè)時(shí)間段內(nèi)占用CPU,當(dāng)這個(gè)時(shí)間段結(jié)束之后,再由CPU來(lái)選擇下一個(gè)進(jìn)程執(zhí)行.而進(jìn)程又可以將進(jìn)程再分的更細(xì),即每個(gè)線程都是獨(dú)立的,進(jìn)程的中的主線程通知其他線程之后,由其他線程自己都執(zhí)行各自的任務(wù).好比人,我們的身體就同時(shí)有多個(gè)線程在各自獨(dú)立的執(zhí)行,例如:我們可以邊吃飯,邊看電視,同時(shí)還要呼吸,心跳等等.
?
java中能完成線程功能的類(lèi)是java.lang.Thread
每個(gè)線程的實(shí)現(xiàn)都要通過(guò)新建一個(gè)Thread類(lèi)的對(duì)象去調(diào)用start();方法,而這個(gè)start();方法在執(zhí)行時(shí)會(huì)自動(dòng)去程序中找run();方法因此,一個(gè)線程要執(zhí)行的代碼,就是run();方法中的代碼..
?
為了能讓這個(gè)線程不斷的執(zhí)行下去,通常將要執(zhí)行的代碼寫(xiě)入一個(gè)死循環(huán)中.由此也就產(chǎn)生了問(wèn)題,如果這個(gè)線程一直在執(zhí)行,那么CPU也就無(wú)法去執(zhí)行其他的任務(wù) ...????? 可以通過(guò)Thread類(lèi)中的sleep方法暫停該進(jìn)程,sleep方法中需要傳入的參數(shù)以毫秒為單位(1000ms = 1s),同時(shí),當(dāng)一個(gè)線程暫停時(shí)間到了之后,也不能保證這個(gè)線程能馬上執(zhí)行,而要等到CPU再次選到這個(gè)線程執(zhí)行的時(shí)候,這個(gè)線程才能繼續(xù)進(jìn)行,也就是說(shuō)sleep方法能夠保證這個(gè)線程至少暫停n毫秒(n為傳入的參數(shù)).
?
?
基于以上的一些理解.寫(xiě)了一個(gè)窗體內(nèi)能產(chǎn)生多個(gè)彈球的JFrame
?
球與球之間的碰撞以及效果.. 暫時(shí)還沒(méi)有加入方法..
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

