问题列表 - 第46248页

如何在没有同步方法的情况下从不同的线程安全地刷新缓冲区?

有多个线程,比如B,C和D,每个线程都以高频率将小数据包写入缓冲区.他们拥有自己的缓冲区,没有其他人写过它.写作必须尽可能快,我已经确定使用synchronized它会让它变得无法接受.

缓冲区只是字节数组,以及第一个自由元素的索引:

byte[] buffer;
int index;

public void write(byte[] data) {
    // some checking that the buffer won't overflow... not important now
    System.arraycopy(data, 0, buffer, index, data.length);
    index += data.length;
}
Run Code Online (Sandbox Code Playgroud)

每隔一段时间,线程A就会将每个人的缓冲区刷新到文件中.如果这部分有一些开销可以,所以synchronized在这里使用是没有问题的.

现在麻烦的是,一些其他线程可能正在写入缓冲区,而线程A正在刷新它.这意味着两个线程会index在同一时间尝试写入.这会导致数据损坏,我想阻止,但使用synchronizedwrite()方法.

我已经感觉到,使用正确的操作顺序,可能还有一些volatile领域,这一定是可能的.有什么好主意吗?

java multithreading synchronized

6
推荐指数
1
解决办法
3611
查看次数

Android LogCat过滤器,用于Eclipse中的多个标签

点击创建过滤器无法从文档中找出如何为两个或多个标签创建过滤器.如果我有两个标签 com.test.TestClassA,com.test.TestClassB如何创建一个显示这两个类的日志的过滤器?我看到你如何只为某些标签启动ADB,但是如何在eclipse中完成呢?请提供详情谢谢.在eclipse中创建新过滤器时,我到底需要输入什么?

android filtering filter logcat

47
推荐指数
4
解决办法
2万
查看次数

如果我重用一个QProcess变量,stdout/stderr通道中是否会有剩余的数据?

我有以下场景:

QProcess*p;
// later 
p->start();
//later
p->terminate(); // there might be unread data in stdout
//later
p->start();
Run Code Online (Sandbox Code Playgroud)

我读过程stdout.在我第二次调用p-> start()之后,第一次p-> start()的stdout缓冲区中是否还有未读数据?那对我来说是个问题.我需要冲洗缓冲区吗?

qt

4
推荐指数
1
解决办法
1364
查看次数

静态成员类与普通的c-like接口

嘿.
这里阅读关于服务定位器模式之后,它让我想到一个只有静态成员的类真的是要走的路,或者正常的类似c的interace是不合适的.我发现class当人们甚至不需要它时,他们会一直在关注关键词.
从链接页面获取静态成员类的示例:

class Locator
{
public:
    static IAudio* GetAudio() { return service_; }

    static void Register(IAudio* service)
    {
        service_ = service;
    }

private:
    static IAudio* service_;
};
Run Code Online (Sandbox Code Playgroud)

这是一种可以做到的方式:

// in .h
namespace Locator{
    IAudio* GetAudio();
    void Register(IAudio* service);
}

// in .cpp
namespace Locator{
    namespace {
        IAudio* service_;
    }

    IAudio* GetAudio() {
        return service_;
    }
    void Register(IAudio* service) {
        service_ = service;
    }
}
Run Code Online (Sandbox Code Playgroud)

两个示例都可以用Locator::GetAudio()和完全相同的方式调用Locator::Register(...).上面的一个优于其他?它们是一样的吗?有没有更好的方法来实现这一目标?或者仅仅是个人偏好?谢谢你的帮助.:)

c++ design-patterns static-members service-locator

5
推荐指数
1
解决办法
916
查看次数

在 php 中生成唯一的 id(用于 url 缩短器)

如何使用 (0 - 9)、(a - z) 和 (A - Z) 在 php 中生成最多 6 个字符的唯一组合?有多少可能的组合?(例如 AAaa 将与 Aaaa 不同)?

php

4
推荐指数
2
解决办法
4025
查看次数

卸载android应用程序时如何删除文件?

可能重复:
如何在卸载时删除应用程序创建的文件?

我们在Android上制作了一个流媒体播放器.在我的应用程序中,每15分钟向服务器发送一个事件文件.可能是手机内存中的某些文件存储.

应用程序卸载时如何删除所有文件?

请帮帮我.

谢谢

android uninstall

2
推荐指数
1
解决办法
8975
查看次数

如果不被空间包围,为什么等于运算符不起作用?

我尝试了以下脚本

#!/bin/bash
var1="Test 1" 
var2="Test 2"
if [ "$var1"="$var2" ] 
  then 
    echo "Equal" 
  else 
    echo "Not equal"
fi
Run Code Online (Sandbox Code Playgroud)

它给了我Equal.虽然它应该印刷Not equal

只有当我在=其周围插入空间时才能按预期工作

if [ "$var1" = "$var2" ] 
Run Code Online (Sandbox Code Playgroud)

并打印 Not equal

为什么会这样?为什么"$var1"="$var2"不一样"$var1" = "$var2"

而且,当我写作时if [ "$var1"= "$var2" ],它给了

line 4: [: Test 1=: unary operator expected
Run Code Online (Sandbox Code Playgroud)

它是什么意思?它如何期待一元运算符?

syntax bash shell scripting

34
推荐指数
2
解决办法
1万
查看次数

DATEDIFF获得上个月

我希望相对于当前日期获得上个月

SELECT datediff(mm,-1,2-2-2011)

这个查询给出67这是一个错误的值..哪里出错了?

sql sql-server

4
推荐指数
2
解决办法
7万
查看次数

SpeechSynthesizer .NET控制音高

我试图通过SSML和.NET SpeechSynthesizer(System.Speech.Synthesis)改变语音文本的音高

SpeechSynthesizer synthesizer = new SpeechSynthesizer();
PromptBuilder builder = new PromptBuilder();
builder.AppendSsml(@"C:\Users\me\Documents\ssml1.xml");
synthesizer.Speak(builder);
Run Code Online (Sandbox Code Playgroud)

ssml1.xml文件的内容是:

<?xml version="1.0" encoding="ISO-8859-1"?>
<ssml:speak version="1.0"
xmlns:ssml="http://www.w3.org/2001/10/synthesis"
xml:lang="en-US">
<ssml:sentence>
Your order for <ssml:prosody pitch="+30%" rate="-90%" >8 books</ssml:prosody>
will be shipped tomorrow.
</ssml:sentence>
</ssml:speak>
Run Code Online (Sandbox Code Playgroud)

价格被认可:"8本书"比其他人说得慢得多,但无论"音调"的价值是多少,都没有区别!允许的值可以在这里找到:

http://www.w3.org/TR/speech-synthesis/#S3.2.4

我错过了什么或正在改变微软语音引擎不支持的音调?

弗里茨

c# text-to-speech

11
推荐指数
1
解决办法
4143
查看次数

适当的linux目录安装php守护进程

我们有一个使用php开发的守护进程的应用程序.到目前为止,我们已经在文档根目录中运行它.但是我们现在已经从主Web应用程序中隔离了我们的守护程序代码,因此在文档根目录中不再需要它.安装此类应用程序的适当目录是什么?

php installation daemon

1
推荐指数
2
解决办法
724
查看次数