請(qǐng)問ThreadPoolExecutor是否有查看線程池是否空閑,當(dāng)前有多少個(gè)線程正在工作的接口呢....
我submit一個(gè)runnable接口任務(wù),最后怎樣來確認(rèn)這些在線程池中的任務(wù)都完成了呢?
看完了這一篇,很詳細(xì)。
有一個(gè)問題就是:Worker的數(shù)量是如何確定的,由哪個(gè)參數(shù)確定?
Worker是在什么時(shí)候被構(gòu)造出來的?
這樣做的一個(gè)好處是,如果某個(gè)讀操作在刪除時(shí)已經(jīng)定位到了舊的鏈表上,那么此操作仍然將能讀到數(shù)據(jù),只不過讀取到的是舊數(shù)據(jù)而已,這在多線程里面是沒有問題的。
在刪除一個(gè)元素的時(shí)候,應(yīng)該會(huì)加writelock了,為什么還會(huì)有讀數(shù)據(jù)的可能呢?
re: 程序員小史記017[未登錄] Nemo 2008-11-19 08:41
怎么很久不更新了呀
re: 程序員小史記012[未登錄] Nemo 2008-10-12 09:41
馬上要去上海實(shí)習(xí)了,真是忐忑
re: 程序員小史記007[未登錄] Nemo 2008-09-27 12:12
這一期寫得很好~我也是要畢業(yè)了,希望能去大公司
re: 程序員小史記005[未登錄] Nemo 2008-09-21 09:37
大三馬上要畢業(yè)了,到現(xiàn)在也沒過4級(jí),掛了很多課。
看了你的文章更是忐忑了許多,大學(xué),真的是還沒開始過,就要結(jié)束了。
re: 瀏覽器之爭(zhēng) nemo 2008-09-10 13:05
re: 瀏覽器之爭(zhēng) nemo 2008-09-09 19:17
@gfh
有同感。同標(biāo)準(zhǔn)靠攏是個(gè)趨勢(shì)。但是又不能僅僅靠攏標(biāo)準(zhǔn)。每個(gè)瀏覽器還需要有自己的特色,才能在競(jìng)爭(zhēng)中占據(jù)優(yōu)勢(shì)。IE8也向標(biāo)準(zhǔn)邁出了極其重要的一步,希望在未來令開發(fā)者們頭疼的問題能夠慢慢解決吧。
re: 我的書終于出了 nemo 2008-08-23 00:11
哈哈,多謝捧場(chǎng)。好啊,有空來找我,給你簽名:)
@很暴力
用過,但是只用過最基本的功能,沒有進(jìn)行過調(diào)試。文章中已修改。多謝提醒:)
@homer
可以直接擴(kuò)展ResourceNavigator,網(wǎng)上有相關(guān)的文章:
http://www.cnblogs.com/Aimd/archive/2006/05/15/400753.html
不知道你有什么樣的需求,如果是基于GEF/EMF做的話,可以考慮使用ProjectExplorer。如果你要保留Eclipse資源所支持的大部分功能,在此基礎(chǔ)上定制一些自己的樹結(jié)點(diǎn),只要擴(kuò)展org.eclipse.ui.navigator.navigatorContent擴(kuò)展點(diǎn),定義一些triggerpoint,并且自己提供navigatorContentProvider, navigatorLableProvider, navigatorActionProvider,就可以達(dá)到此目的。
nemo
@homer
這個(gè)問題應(yīng)該是你的GefTest.application沒有被找到。跟ResourceNavigator類關(guān)系不大。你可以查看一下你RCP插件(擁有Application類的插件)中的Application類所在的插件工程的plugin.xml中,org.eclipse.core.runtime.application擴(kuò)展點(diǎn)中察看一下你所指定的Application類對(duì)不對(duì),以及Application Id 和你在XXX.product中所指定的Id是否一致(如果擁有產(chǎn)品文件的話)。
如果沒有問題的話,確保你的RCP插件中的插件依賴項(xiàng)和xxx.product中的依賴項(xiàng)一致。
還有可能是依賴項(xiàng)的順序問題...這就比較麻煩了。
不太懂你的意思。你是指想要以編程的方式來獲得文件的絕對(duì)路徑么?應(yīng)該可以吧。resource中有g(shù)etAbsolutePath()方法吧。。。?
to z:
這個(gè)問題可能是因?yàn)闆]有引用org.eclipse.ui.ide的緣故,或者新版本的org.eclipse.ui.ide已經(jīng)將ResourceNavigator從該項(xiàng)目包中去掉(這個(gè)我不是很了解,最近沒有跟蹤Eclipse3.3版本)。最好能夠提供一些具體的細(xì)節(jié)。
to dashan:
YOURPlugin是你的插件類,在Eclipse3.1以后使用了OSGi技術(shù),是指插件的Activator類。
現(xiàn)在,隨著激動(dòng)人心的eclipse3.3的正式發(fā)布,令人慶幸的一件事情發(fā)生了:eclipse中的IDE被移植到了單獨(dú)的包中:
IDE application moved to new plug-in
The portion of the org.eclipse.ui.ide plug-in that defines the application has been moved into a new plug-in: org.eclipse.ui.ide.application. This allows people writing their own RCP application to use existing views or APIs defined by org.eclipse.ui.ide without having a dependency on the application.
呵呵,放在這就是希望它有點(diǎn)用處。不過很慚愧,這是我第一次作業(yè),寫的還算比較認(rèn)真,以后的就不值一看了。
re: Eclipse的插件第三種安裝方法 nemo 2007-03-06 10:45
Eclipse提供了一種新的方法來針對(duì)每個(gè)插件進(jìn)行配置。在PDE的新建插件向?qū)е锌梢詣?chuàng)建“目標(biāo)定義”項(xiàng)目,創(chuàng)建以.target結(jié)尾的文件,PDE對(duì)此文件的格式也進(jìn)行了支持。這樣,就可以在目標(biāo)中指定和管理多個(gè)插件站點(diǎn),而不需要使用 .link 文件了。
現(xiàn)在對(duì)OSGi了解的比較多了,OSGi對(duì)Eclipse發(fā)現(xiàn)插件、控制插件都非常重要。在Eclipse3.1以后,OSGi bundle代替原來的插件來控制插件的生命周期。MANIFEST.MF文件包含了許多OSGi頭和特定的基于Eclpse平臺(tái)的偽代碼。
文中第13行Bundle-Activator即為激活器類。在Eclipse3.2以后,已經(jīng)將Eclipse創(chuàng)建插件向?qū)ё詣?dòng)產(chǎn)生的插件類命名為Activator。這個(gè)頭部是必須的,Activicator來控制插件的啟動(dòng)、運(yùn)行、結(jié)束,缺少了這個(gè)頭將會(huì)無法創(chuàng)建插件。
第12行:Export-package中的包表示對(duì)其他插件可見的包,也是非常有用的選項(xiàng)。其他插件無法import此偽代碼沒有聲明的包。
好久都沒有更新隨筆了。導(dǎo)出Eclipse RCP項(xiàng)目可以使用Ant構(gòu)建,發(fā)現(xiàn)PDE所提供的向?qū)Х奖闶欠奖悖瑓s老是出錯(cuò)。
re: 大端還是小端? nemo 2006-11-10 10:36
對(duì)。Java等的語言編譯器必須明確他們開發(fā)的目標(biāo)代碼使用的是什么存儲(chǔ)方式。如果有必要,可以使用轉(zhuǎn)換器可以用來轉(zhuǎn)換存儲(chǔ)順序。
re: Eclipse的插件第三種安裝方法 nemo 2006-07-15 02:24
偶現(xiàn)在也開始用link方式了:)
對(duì)不起大家啊,這段時(shí)間一直沒有來得及管理博客。在忙畢設(shè)。現(xiàn)在可以歇一歇了。
如果要在上下文菜單里添加多極菜單的話,需要加入菜單分隔線,否則系統(tǒng)就會(huì)警告。
menuManager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
@sol
這兩天我又研究了一下關(guān)于刷新不及時(shí)的問題,有了一些答案。
建議不要使用refresh(void)方法。refresh(void)方法只有在大規(guī)模數(shù)據(jù)變動(dòng)的情況下在使用,否則會(huì)延緩刷新。
viewer.refresh()會(huì)遞歸的更新所有樹節(jié)點(diǎn)object,以及l(fā)abel和content,在這個(gè)過程中需要與樹結(jié)構(gòu),標(biāo)簽提供器以及內(nèi)容提供器緊密的交互,因而在出現(xiàn)較少數(shù)據(jù)變更時(shí)沒有必要也不應(yīng)該使用刷新方法。
還有另一個(gè)版本的刷新方法,可以用它來指定是否刷新現(xiàn)有元素的標(biāo)簽。建議使用刷新方法時(shí)不要使用viewer.refresh(),而使用viewer.refresh(boolean updateLabels)、viewer.refresh(Object element)、viewer.refresh(Object element,boolean updateLabels)
而update方法之刷新所選目標(biāo)的label或是圖像,而不管其子節(jié)點(diǎn)。如果該節(jié)點(diǎn)下新增加了一個(gè)子節(jié)點(diǎn),調(diào)用update方法之后不會(huì)顯示出來.
如果加載的數(shù)據(jù)過多,可新開一線程。
re: Eclipse的插件第三種安裝方法 nemo 2006-04-06 10:44
其實(shí)原理都差不多,但是我用link方式總有問題,這是一個(gè)保險(xiǎn)的解決方法。反正對(duì)我來說是強(qiáng)多了:)
re: Eclipse的插件第三種安裝方法 nemo 2006-04-05 14:52
現(xiàn)在應(yīng)該好了:)
re: Eclipse的插件第三種安裝方法 nemo 2006-04-05 14:42
呵呵,一時(shí)疏忽,見笑了!
我這里沒有用別的方法,只調(diào)用viewer.refresh()方法。是不是監(jiān)聽機(jī)制出現(xiàn)了問題?
@想不出問題的我
可以設(shè)置nameFilter過濾樹結(jié)點(diǎn)的名字。
比如對(duì)于文件結(jié)點(diǎn)而言,可根據(jù)文件的后綴名辨別不同的樹結(jié)點(diǎn),從而針對(duì)不同類型的文件設(shè)置不同的ContextMenu.
可以通過填寫plugin.xml來進(jìn)行操作。通過設(shè)置filter,典型格式如下:
<extension point="org.eclipse.ui.popupMenus">
<objectContribution id="org.eclipse.ui.articles.action.contribution.popup.object"
objectClass="org.eclipse.core.resources.IFile"
nameFilter="*.java">
<filter
name="projectNature"
value="org.eclipse.jdt.core.javanature">
</filter>
<action id="org.eclipse.ui.articles.action.contribution.object.action1"
label="Object Action 1"
icon="icons/red_dot.gif"
menubarPath="additions"
class="org.eclipse.ui.articles.action.contribution.ObjectAction1Delegate">
</action>
</objectContribution>
</extension>
此處objectClass設(shè)為你為你的TreeViewer設(shè)置的樹對(duì)象類。nameFilter可以精確指定哪一個(gè)樹對(duì)象(顯示的名字)。
action標(biāo)簽設(shè)置你想要處理的事件操作,必須實(shí)現(xiàn)org.eclipse.ui.IObjectActionDelegate接口(讓Eclipse自動(dòng)完成),只要在其中實(shí)現(xiàn)run()方法,寫出自己想要的操作即可。我印象中是這樣的。
另外的方法你可以在createContextMenu中針對(duì)不同的TreeObject對(duì)象(通過viewer.getTree().getSelection()[0].getText()獲知當(dāng)前選擇的樹對(duì)象)構(gòu)造不同的響應(yīng)方法(用判斷語句)。
關(guān)于第一種方法,上面給出的那個(gè)鏈接中有比較詳細(xì)的說明,可以參考。
比較忙,有不明白的地方請(qǐng)包涵。也可以再提出來。有空時(shí)我會(huì)回復(fù)的。