This topic has been archived. It cannot be replied.
-
工作学习 / IT技术讨论 / 开始学习JAVA,搞了一晚JIVE论坛终于搭建好了。但是看代码看到HASH CACHE那一段有一句看不懂,哪位熟悉JIVE的讨论讨论?
-henryxy(亨利大帝);
2005-3-18
{854}
(#2186331@0)
-
How about your job? Like it?
-littlebears(此熊非彼熊);
2005-3-18
(#2186635@0)
-
我迟点才开始工作,正在在看JAVA和数据挖掘的东西充充电。对了,我想问问这里有没有比较熟悉UNIX/LINUX 内核/C的高手,有一些关于锁和队列的问题想请教怎样可以在UNIX/LINUX下实现一个队列,两条线程一个IN 一个OUT,完全不加锁
-henryxy(亨利大帝);
2005-3-18
{70}
(#2187162@0)
-
我用进程做过,申请一块了share memory. 线程应该更容易吧。申请一块memory ,假设100K, 每个对象1K,最多100个对象。
int nHeader =0;
int nTail=0;
push thread:
if ( (nTail < (nHeader +100 ) )
{
Q[ nTail%100 ] = new object;
nTail++;
}
else
wait;
Pop Thread:
if ( nHeader < nTail )
{
object = Q[nHeader %100];
nHeader++;
}
else
wait;
-holdon(try again);
2005-3-18
{311}
(#2188559@0)
-
高手!构思果然巧妙,精华在于%号和+100,又学到东西了:) 还想请教如果不用定长的数组,用链表+指针能否做到?
-henryxy(亨利大帝);
2005-3-18
(#2188570@0)
-
指针好像比较容易出问题。不加锁的话会有问题。
-holdon(try again);
2005-3-18
(#2188629@0)
-
我以前的一个同事说他能用指针实现这个,我又不是很好意思直接问他。等我再找找资料吧。
-henryxy(亨利大帝);
2005-3-18
(#2188761@0)
-
所有的内核代码在任意时都可抢占的话就应该遵循强制性的锁。
-ra_95(小人-行尸走肉);
2005-3-18
(#2188662@0)
-
这只是一个关于队列的常规做法,这里真正写过内核的恐怕没几个吧。
-holdon(try again);
2005-3-18
(#2188678@0)
-
写过作业。
-canadiantire(轮胎-M.I.N.K.);
2005-3-18
{6}
(#2188750@0)
-
我就是不明白你为什么这样写啊.过去学操作系统,呵呵,这个系统是一再强调什么多处理机什么的
-ra_95(小人-行尸走肉);
2005-3-18
(#2188875@0)
-
初级程序员不懂加解锁为何物,中级程序员知道加锁但是经常忘记解锁,高级程序员懂得怎样加解锁,大师者能不用锁尽量不用:)
-henryxy(亨利大帝);
2005-3-18
(#2188943@0)
-
在确定只有两个进/线程访问时,这样的队列是可行并且高效的。不需要从新申请/释放内存,重复使用。
-holdon(try again);
2005-3-18
(#2188948@0)
-
你有没有测试过两个进程/线程这样访问一个队列比多个线程访问队列快多少?
-henryxy(亨利大帝);
2005-3-19
(#2189183@0)
-
内核代码里面的锁乱七八糟故领精怪,其实到最后都是靠硬件总线来实现吧
-henryxy(亨利大帝);
2005-3-18
(#2188768@0)