这令人惊讶
lrwxrwxrwx 1 root root 1 2011-08-23 17:18 common -> .
Run Code Online (Sandbox Code Playgroud)
这表示目录具有自身的符号链接.
但我无法弄清楚这样做的目的.
我在firefox包中找到了这个.
那么这种联系的目的是什么?
我有一个源目录,它使用makefile来编译代码.此makefile/configure文件不是为ccache兼容性而编写的.所以我想用ccache.我在.bashrc中创建了别名alias gcc='ccache gcc',但是Makefile仍然没有考虑gcc的这个定义.那么有什么我可以做而不触摸Makefile/configure文件,ccache gcc而不是gcc.CC ='ccache gcc'./configure也不是一个选项,因为它不要求CC.
如果我写Makefile然后我可以提供$ {gcc),但这不是一个选项,因为我不是在写Makefile.有什么办法可以让我们不需要在源文件中更改任何内容,但仍然可以启用ccache编译.
我在Java中实现了一个程序,对于特定的测试用例来说,令人惊讶的是需要177M内存(我没有,因为程序是由一个网站测试的).
问题是找出字符串S2中存在于字符串S1中的所有字符.还有N个这样的案例.
public static void main(String[] args) throws Exception {
BufferedReader bin = new BufferedReader (new InputStreamReader (System.in));
String jewel, stone;
int t = Integer.parseInt (bin.readLine());
int count;
int i;
while (t-->0) {
count = 0;
jewel = bin.readLine();
stone = bin.readLine();
for (i=0; i<stone.length(); i++) {
if (jewel.indexOf(stone.charAt(i)) !=-1) {
count++;
}
}
System.out.println(count);
}
}
Run Code Online (Sandbox Code Playgroud)
我也不明白,它是如何使用177M的ram.即使他们正在测试一个巨大的文件,那么也只有2个字符串.但是代码完全正常,测试用例通过了.
由于java程序占用了大量内存,所以我打算编写一个相同程序的C版本.以下是:
int main ()
{
char * pch;
char jewel[100], stone[100];
int n;
scanf("%d",&n);
int len;
int tp;
int count = 0; …Run Code Online (Sandbox Code Playgroud) float a=67107842,b=512;
float c=a/b;
printf("%lf\n",c);
Run Code Online (Sandbox Code Playgroud)
为什么c131070.000000而不是正确值131070.00390625?
这段代码有什么问题?谁有人解释一下?
#include <stdio.h>
#include <malloc.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main()
{
int num;
int d;
int size = TOTAL_ELEMENTS -2;
printf("%d\n",(TOTAL_ELEMENTS-2));
for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
printf("%d\n",array[d+1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我打印它给5,但内部循环发生了什么?
嘿伙计们,
我正在阅读这些所谓的非阻塞技术,但我几乎没有怀疑:
1)使用原子操作执行无锁操作,现在这些原子操作是什么?我的意思是在一定程度上他们还需要锁定吗?那么这种无锁方法是否只能让我们以更精细的粒度锁定?
2)他们说非阻塞列表,现在应该是一个非阻塞列表:如果同一个插入的多个线程出现,只有一个会成功,另一个会做其他工作吗?,但是如果除了插入一个节点,其他线程别无选择,那么它是如何进行非阻塞的呢?它不会被阻止,直到前一个完成?
3)在java中,它们如何进行原子操作?他们不是这样做的, synchronized boolean .....
因为他们正在获取锁定即同步部分,它是如何无锁的?4)CAS通常用于实现原子操作.那么cas不允许在同一个对象上只发生一个操作,并停止(阻止)那些想要在同一个对象上操作的人吗?很抱歉这么多疑惑......请澄清......
编辑
当我有更新结构时会发生什么?它也受硬件支持吗?没有权利,那么语言是否会在某种程度上获取锁定以使这些结构操作成为原子?
关于JAVA:有AtomicReference和AtomicReferenceFieldUpdater类,它为对象(结构或任何类型的对象)提供更新,所以我们可以在性能方面比较它们,我的意思是速度吗?在tern中都使用了使用Native类的Unsafe类.
我正在尝试这两个基准测试(软件事务内存和原子操作,我猜两者都不一样),虽然我没有做太多使用STM(似乎很难使用),但我成功尝试计数基准,即所有线程将共享计数器递增50,000次,并注意到原子操作比STM更好.
所以我想知道,因为STM尚未完全开发,它们在现实情况下是否比原子操作表现良好?
有一个人因为表现而转向其他人吗?请分享信息..
我在网上找到的相关日志是没有锁的并发编程
PS我使用JAVA作为编程语言.STM: - 多节.AtomicOperatinn:AtomicInteger.