自上而下是說的同一函數(shù)內(nèi)的順序和函數(shù)調(diào)用順序,不是指的文件里的行號。例如無論寫在第幾行,main函數(shù)都是要首先運行的。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供淶水網(wǎng)站建設、淶水做網(wǎng)站、淶水網(wǎng)站設計、淶水網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、淶水企業(yè)網(wǎng)站模板建站服務,10年淶水做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
在你要結(jié)束的地方添加System.exit(0);就行了,執(zhí)行改行代碼后,當前程序就會結(jié)束
本來用DWR調(diào)用方法就是多線程的,線程總數(shù)與J2EE容器配置的有關。
建議如下:
如果你這個A()調(diào)用的接口一次只允許一個訪問,那么需要在A所在的類里設置一個靜態(tài)成員變量,如static
String
object
=
"some"。
然后在A()方法一開始用synchronized
(object)
{..
}把代碼都包含進來。
這樣可以確保一次只有一個訪問。
如果接口一次最多運行固定數(shù)目的訪問,如10個。那么復雜一些,不過我估計你不是這個情況。一般建議這個固定數(shù)目與J2EE容器配置的線程數(shù)一致即可。
上述方法都是為了防止接口被同時訪問,但這樣的后果就是前端用戶會等待,甚至線程滿。前端等待是沒辦法的,后面慢,前面只有排隊了。線程滿的話,最好的方式是采用非阻塞的IO(NIO),不過那個很難做到。你提出的10秒終止方法是一種方案,不過關鍵在于如何終止一個方法的運行。
很遺憾,Java不能任意終止一個方法的運行,不過對于接口操作,可以如下處理:
a)
如果接口是TCP/IP,那么可以通過強行關閉socket來終止。如:
timer.schedule(
new
TimerTask()
{
public
void
run()
{
socket.close();
}
},
10000);
b)
如果接口是用類庫的話,看看它有沒有設置timeout的地方,如果有,那么設置一下,如果沒有,那么沒辦法了。
補充:
你用了axis的setTimeout,理論上超過10秒后call.invoke會拋出異常的。
假設后臺很慢,每次都需要10秒,假設weblogic線程池大小為50,那么如果同時訪問的人超過50個,或者每秒訪問量超過5個,那么就會發(fā)生線程阻塞。
這是系統(tǒng)性能問題,可以將weblogic的線程池最大數(shù)量設置高些來增加吞吐量。不過這種方式治標不治本,如果你的程序預計到并發(fā)訪問量很大,那么后臺響應超過1秒就不太合理了,這個改動起來就很麻煩了。
當前名稱:java代碼不往下執(zhí)行 java無法從靜態(tài)上下文
當前路徑:http://jinyejixie.com/article6/dochoog.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設、手機網(wǎng)站建設、網(wǎng)站營銷、品牌網(wǎng)站設計、網(wǎng)頁設計公司、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)