擺渡人,外婆橋!
----只要路選對(duì)了,就不怕有多遠(yuǎn)!
同步(synchronized)對(duì)程序性能的影響!
在使用多線程時(shí),可能會(huì)訪問(wèn)一些全局的數(shù)據(jù),這時(shí)必然會(huì)使用同步機(jī)制來(lái)使程序按照一定順序來(lái)執(zhí)行,這樣程序的性能也會(huì)下降。所以一定要慎用同步,正確用同步。看下面的程序
???????
int
?curIndex?
=
?
0
;
????????AuditQueueEntry?aqe;
????????
synchronized
?(localCriticalSection)?
{??????
????????????
while
?(curIndex?
<
?theList.size())?
{
????????????????aqe?
=
?(AuditQueueEntry)?theList.get(curIndex);
????????????????
if
?(aqe.getTrailId()?
==
?theTrailId)?
{
????????????????????theList.remove(curIndex);
????????????????}
?
else
?
{
????????????????????curIndex
++
;
????????????????}
????????????}
????????}
localCriticalSection做為一個(gè)信號(hào)量來(lái)控制程序?qū)︻惓蓡T變量theList的訪問(wèn),從而保證了theList在同一時(shí)間只有一個(gè)程序訪問(wèn)。運(yùn)行程序,這個(gè)函數(shù)花費(fèi)了將近4秒鐘。同步是很耗時(shí)間的。
在java.util.Collections中提供了很多方法來(lái)保證集合(數(shù)組)的同步訪問(wèn)。
我們修改類成員變量theList的實(shí)例化方法:
theList?
=
?Collections.synchronizedList(new?LinkedList());
再修改處理函數(shù):
????????
int
?curIndex?
=
?
0
;
????????AuditQueueEntry?aqe;
//
????????synchronized?(localCriticalSection)?{
????????
synchronized
(theList)?
{????
????????????
while
?(curIndex?
<
?theList.size())?
{
????????????????aqe?
=
?(AuditQueueEntry)?theList.get(curIndex);
????????????????
if
?(aqe.getTrailId()?
==
?theTrailId)?
{
????????????????????theList.remove(curIndex);
????????????????}
?
else
?
{
????????????????????curIndex
++
;
????????????????}
????????????}
????????}
再運(yùn)行,這個(gè)函數(shù)才花費(fèi)將近一秒鐘的時(shí)間!
在Collections中提供了很多這類的方法。
發(fā)表于 2006-11-10 12:37
swingboat
閱讀(1340)
評(píng)論(2)
編輯
收藏
所屬分類:
JAVA
評(píng)論
#
re: 同步(synchronized)對(duì)程序性能的影響!
但這里有個(gè)問(wèn)題:
當(dāng)兩個(gè)線程A和B同時(shí)訪問(wèn)此函數(shù)的時(shí)候,假設(shè)theList.site()為5.優(yōu)先級(jí)高的線程A首先訪問(wèn)訪問(wèn)此函數(shù).線程A刪除了一個(gè)元素,假設(shè)當(dāng)前索引為2.線程B開(kāi)始訪問(wèn)此函數(shù),而開(kāi)始刪除索引為2的元素.由于索引2的元素已經(jīng)被線程A刪除了,所以線程B開(kāi)始訪問(wèn)的刪除的時(shí)候,會(huì)拋出空指針的異常.
swingboat
評(píng)論于 2006-11-13 14:44
回復(fù)
更多評(píng)論
#
re: 同步(synchronized)對(duì)程序性能的影響!
其實(shí)你的問(wèn)題,與線程是沒(méi)有關(guān)系的。只不過(guò)在刪除的時(shí)候需要去檢查下需要?jiǎng)h除的對(duì)象是否在數(shù)組中存在。
swingboat
評(píng)論于 2006-11-30 11:02
回復(fù)
更多評(píng)論
新用戶注冊(cè)
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問(wèn)
管理
相關(guān)文章:
利用JGroups同步兩臺(tái)server之間的cache。
有關(guān)“+”和“_”的search。
synchronized的作用
不同時(shí)區(qū)之間,時(shí)間的轉(zhuǎn)換?
maven2使用問(wèn)題集(命令篇)!
同步(synchronized)對(duì)程序性能的影響!
Tomcat5.5.x的JNDI配置(jakarta-tomcat-5.5.7)。
AXIS學(xué)習(xí)(1)
獲取classes目錄下的資源文件和類所在目錄下的資源文件?
實(shí)現(xiàn)類clone方法
<
2006年11月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
公告
導(dǎo)航
BlogJava
首頁(yè)
發(fā)新隨筆
發(fā)新文章
聯(lián)系
聚合
管理
統(tǒng)計(jì)
隨筆: 51
文章: 1
評(píng)論: 50
引用: 0
常用鏈接
我的隨筆
我的評(píng)論
我的參與
最新評(píng)論
留言簿
(4)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類
JAVA(21)
(rss)
javascript&DHTML&CSS(15)
(rss)
Oracle/MySQL(6)
(rss)
SOA(1)
(rss)
WEB2.0(4)
(rss)
WorkFlow&BPEL(1)
(rss)
名詞概念(1)
(rss)
架構(gòu)模式
(rss)
汽車&甲殼蟲(chóng)
(rss)
設(shè)計(jì)模式(3)
(rss)
軟件工程(1)
(rss)
隨筆檔案
2007年9月 (1)
2007年8月 (3)
2007年7月 (1)
2007年5月 (2)
2007年4月 (4)
2007年3月 (1)
2007年2月 (1)
2006年12月 (1)
2006年11月 (2)
2006年10月 (1)
2006年8月 (1)
2006年4月 (1)
2006年3月 (2)
2006年2月 (4)
2005年12月 (26)
文章檔案
2006年1月 (1)
IT
竹筍炒肉
搜索
積分與排名
積分 - 133223
排名 - 466
最新隨筆
1.?IE對(duì)select的處理,又一怪現(xiàn)象:innerHTML竟然不起作用。
2.?在IE下,頁(yè)面只有一個(gè)text的時(shí)候,回車將自動(dòng)submit。
3.?設(shè)置input的內(nèi)容居中?
4.?可惡的“本頁(yè)不但包含安全的內(nèi)容,也包含不安全的內(nèi)容。是否顯示不安全的內(nèi)容”對(duì)話框?
5.?利用JGroups同步兩臺(tái)server之間的cache。
6.?有關(guān)“+”和“_”的search。
7.?synchronized的作用
8.?HTML的特殊字符
9.?不同時(shí)區(qū)之間,時(shí)間的轉(zhuǎn)換?
10.?javascript在IE和Firefox中的區(qū)別1
最新評(píng)論
1.?re: javascript轉(zhuǎn)換日期字符串為Date對(duì)象
大牛
--sfafa
2.?re: synchronized的作用[未登錄](méi)
把100換成1000就好了!
--xyz
3.?re: synchronized的作用
晦澀難懂!
--無(wú)知者
4.?re: synchronized的作用
好
--白河夜歌
5.?re: 可惡的“本頁(yè)不但包含安全的內(nèi)容,也包含不安全的內(nèi)容。是否顯示不安全的內(nèi)容”對(duì)話框?
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--老梁
閱讀排行榜
1.?javascript轉(zhuǎn)換日期字符串為Date對(duì)象(47717)
2.?synchronized的作用(16409)
3.?可惡的“本頁(yè)不但包含安全的內(nèi)容,也包含不安全的內(nèi)容。是否顯示不安全的內(nèi)容”對(duì)話框?(11094)
4.?不同時(shí)區(qū)之間,時(shí)間的轉(zhuǎn)換?(7457)
5.?利用JGroups同步兩臺(tái)server之間的cache。(6607)
評(píng)論排行榜
1.?synchronized的作用(18)
2.?可惡的“本頁(yè)不但包含安全的內(nèi)容,也包含不安全的內(nèi)容。是否顯示不安全的內(nèi)容”對(duì)話框?(7)
3.?javascript在IE和Firefox中的區(qū)別1(6)
4.?javascript轉(zhuǎn)換日期字符串為Date對(duì)象(4)
5.?在IE下,頁(yè)面只有一個(gè)text的時(shí)候,回車將自動(dòng)submit。(3)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 swingboat
主站蜘蛛池模板:
亚洲免费综合色在线视频
|
222www免费视频
|
亚洲一区二区三区亚瑟
|
亚洲精品无码MV在线观看
|
国产网站在线免费观看
|
免费黄色福利视频
|
免费高清国产视频
|
亚洲视频在线免费
|
国产精品亚洲а∨无码播放不卡
|
亚洲六月丁香六月婷婷色伊人
|
亚洲女人影院想要爱
|
亚洲精品美女久久777777
|
亚洲国产精品成人久久蜜臀
|
成年女性特黄午夜视频免费看
|
99re6热视频精品免费观看
|
国产无遮挡无码视频免费软件
|
永久中文字幕免费视频网站
|
美女内射毛片在线看免费人动物
|
最近国语视频在线观看免费播放
|
亚洲精品中文字幕乱码
|
久久亚洲高清观看
|
亚洲国产日韩在线视频
|
国产午夜亚洲精品理论片不卡
|
免费在线观看你懂的
|
日韩免费a级在线观看
|
成人午夜视频免费
|
成人毛片免费观看视频
|
成人免费午夜无码视频
|
亚洲免费网站观看视频
|
黄色片在线免费观看
|
无遮免费网站在线入口
|
曰批全过程免费视频在线观看
|
99无码人妻一区二区三区免费
|
亚洲网站在线观看
|
久久亚洲AV成人出白浆无码国产
|
亚洲丁香色婷婷综合欲色啪
|
亚洲丝袜美腿视频
|
亚洲成a人片在线网站
|
国产成人精品日本亚洲专一区
|
女人被弄到高潮的免费视频
|
在线播放免费播放av片
|